<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
資料視覺化是指用圖形或表格的方式來呈現資料。圖表能夠清楚地呈現資料性質, 以及資料間或屬性間的關係,可以輕易地讓人看圖釋義。使用者通過探索圖(Exploratory Graph)可以瞭解資料的特性、尋找資料的趨勢、降低資料的理解門檻。
本章主要採用 Pandas 的方式來畫圖,而不是使用 Matplotlib 模組。其實 Pandas 已經把 Matplotlib 的畫圖方法整合到 DataFrame 中,因此在實際應用中,使用者不需要直接參照 Matplotlib 也可以完成畫圖的工作。
折線圖(line chart)是最基本的圖表,可以用來呈現不同欄位連續資料之間的關係。繪製折線圖使用的是 plot.line() 的方法,可以設定顏色、形狀等引數。在使用上,拆線圖繪製方法完全繼承了 Matplotlib 的用法,所以程式最後也必須呼叫 plt.show() 產生圖,如圖8.4 所示。
df_iris[['sepal length (cm)']].plot.line() plt.show() ax = df[['sepal length (cm)']].plot.line(color='green',title="Demo",style='--') ax.set(xlabel="index", ylabel="length") plt.show()
散佈圖(Scatter Chart)用於檢視不同欄位離散資料之間的關係。繪製散佈圖使用的是 df.plot.scatter(),如圖8.5所示。
df = df_iris df.plot.scatter(x='sepal length (cm)', y='sepal width (cm)') from matplotlib import cm cmap = cm.get_cmap('Spectral') df.plot.scatter(x='sepal length (cm)', y='sepal width (cm)', s=df[['petal length (cm)']]*20, c=df['target'], cmap=cmap, title='different circle size by petal length (cm)')
直方圖(Histogram Chart)通常用於同一欄位,呈現連續資料的分佈狀況,與直方圖類似的另一種圖是長條圖(Bar Chart),用於檢視同一欄位,如圖 8.6 所示。
df[['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)','petal width (cm)']].plot.hist() 2 df.target.value_counts().plot.bar()
圓餅圖(Pie Chart)可以用於檢視同一欄位各類別所佔的比例,而箱形圖(Box Chart)則用於檢視同一欄位或比較不同欄位資料的分佈差異,如圖 8.7 所示。
df.target.value_counts().plot.pie(legend=True) df.boxplot(column=['target'],figsize=(10,5))
資料探索實戰分享:
本節利用兩個真實的資料集實際展示資料探索的幾種手法。
在美國社群調查(American Community Survey)中,每年約有 350 萬個家庭被問到關於他們是誰及他們如何生活的詳細問題。調查的內容涵蓋了許多主題,包括祖先、教育、工作、交通、網際網路使用和居住。
資料名稱:2013 American Community Survey。
先觀察資料的樣子與特性,以及每個欄位代表的意義、種類和範圍。
# 讀取資料 df = pd.read_csv("./ss13husa.csv") # 欄位種類數量 df.shape # (756065,231) # 欄位數值範圍 df.describe()
先將兩個 ss13pusa.csv 串連起來,這份資料總共包含 30 萬筆資料,3 個欄位:SCHL ( 學歷,School Level)、 PINCP ( 收入,Income) 和 ESR ( 工作狀態,Work Status)。
pusa = pd.read_csv("ss13pusa.csv") pusb = pd.read_csv("ss13pusb.csv") # 串接兩份資料 col = ['SCHL','PINCP','ESR'] df['ac_survey'] = pd.concat([pusa[col],pusb[col],axis=0)
依據學歷對資料進行分群,觀察不同學歷的數量比例,接著計算他們的平均收入。
group = df['ac_survey'].groupby(by=['SCHL']) print('學歷分佈:' + group.size()) group = ac_survey.groupby(by=['SCHL']) print('平均收入:' +group.mean())
波士頓房屋資料集(Boston House Price Dataset)包含有關波士頓地區的房屋資訊, 包 506 個資料樣本和 13 個特徵維度。
資料名稱:Boston House Price Dataset。
先觀察資料的樣子與特性,以及每個欄位代表的意義、種類和範圍。
可以用直方圖的方式畫出房價(MEDV)的分佈,如圖 8.8 所示。
df = pd.read_csv("./housing.data") # 欄位種類數量 df.shape # (506, 14) #欄位數值範圍df.describe() import matplotlib.pyplot as plt df[['MEDV']].plot.hist() plt.show()
注:圖中英文對應筆者在程式碼中或資料中指定的名字,實踐中讀者可將它們替換成自己需要的文字。
接下來需要知道的是哪些維度與“房價”關係明顯。先用散佈圖的方式來觀察,如圖8.9所示。
# draw scatter chart df.plot.scatter(x='MEDV', y='RM') . plt.show()
最後,計算相關係數並用聚類熱圖(Heatmap)來進行視覺呈現,如圖 8.10 所示。
# compute pearson correlation corr = df.corr() # draw heatmap import seaborn as sns corr = df.corr() sns.heatmap(corr) plt.show()
顏色為紅色,表示正向關係;顏色為藍色,表示負向關係;顏色為白色,表示沒有關係。RM 與房價關聯度偏向紅色,為正向關係;LSTAT、PTRATIO 與房價關聯度偏向深藍, 為負向關係;CRIM、RAD、AGE 與房價關聯度偏向白色,為沒有關係。
到此這篇關於Python資料視覺化探索範例分享的文章就介紹到這了,更多相關Python資料視覺化內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45