直方圖、密度圖、散點圖,python資料視覺化方法,你要的都在這裡
2022-02-09由 素食先生lpt 發表于 農業
散佈圖的幾種典型相關
直方圖和密度圖
直方圖
直方圖(histogram)
是一種可以對值頻率進行離散化顯示的柱狀圖。資料點被拆分到離散的、間隔均勻的面元中,繪製的是各面元中資料點的數量。
In [
165
]: data1=pd。read_csv(‘G:\LPTPython\practice。csv’)
In [
167
]: data1[‘tip_pct’]=data1[‘tip’] / data1[‘total_bill’]
In [
169
]: data1[‘tip_pct’]。hist(bins=50)
密度圖
與此相關的一種圖表型別是密度圖,它是透過計算“可能會產生觀測資料的連續機率分佈的估計”而產生。一般的過程是將該分佈近似為一組核(即諸如正態(高斯)分佈之類的較為簡單的分佈)。因此,密度圖也被稱作KDE圖。呼叫plot時加上kind=’kde’即可生成一張密度圖(標準混合正態分佈KDE):
In [
170
]: data1[‘tip_pct’]。plot(kind=‘kde’)
In [
182
]: values。hist(bins=100,alpha=0。3,color=‘#1d07f5’,normed=True)
In [
186
]: values。plot(kind=‘kde’,style=‘k——’)
散佈圖(或散點圖)
散佈圖(scatter plot)是觀察兩個一維資料序列之間的關係的有效手段。Matplotlib的scatter方法是繪製散佈圖的主要方法。
In [
187
]: macro=pd。read_csv(‘G:\LPTPython\macrodata。csv’)
In [
188
]: data=macro[[‘cpi’,‘m1’,‘tbilrate’,‘unemp’]]
In [
190
]: trans_data=np。log(data)。diff()。dropna()
In [
191
]: trans_data[-5:]
Out[
191
]:
cpi m1 tbilrate unemp
198 -0。007904 0。045361 -0。396881 0。105361
199 -0。021979 0。066753 -2。277267 0。139762
200 0。002340 0。010286 0。606136 0。160343
201 0。008419 0。037461 -0。200671 0。127339
202 0。008894 0。012202 -0。405465 0。042560
plt。scatter
利用
plt.scatter
即可輕鬆繪製一張簡單的散佈圖:
In [
192
]: plt。scatter(trans_data[‘m1’],trans_data[‘unemp’])
scatter_matrix函式
Pandas提供了一個能從DataFrame建立散佈圖矩陣的scatter_matrix函式。它還支援在對角線上放置各變數的直方圖或密度圖。
In [
195
]: pd。scatter_matrix(trans_data,diagonal=‘kde’,
c='r'
,alpha=0。3)