相關圖
https://datawhalechina.github.io/pms50/#/chapter8/chapter8
導入所需要的庫
import numpy as np # 導入numpy庫 import pandas as pd # 導入pandas庫 import matplotlib as mpl # 導入matplotlib庫 import matplotlib.pyplot as plt import seaborn as sns # 導入seaborn庫 %matplotlib inline # 在jupyter notebook顯示圖像
設定圖像各種屬性
large = 22; med = 16; small = 12 params = {'axes.titlesize': large, # 設置子圖上的標題字體 'legend.fontsize': med, # 設置圖例的字體 'figure.figsize': (16, 10), # 設置圖像的畫布 'axes.labelsize': med, # 設置標簽的字體 'xtick.labelsize': med, # 設置x軸上的標尺的字體 'ytick.labelsize': med, # 設置整個畫布的標題字體 'figure.titlesize': large} plt.rcParams.update(params) # 更新默認屬性 plt.style.use('seaborn-whitegrid') # 設定整體風格 sns.set_style("white") # 設定整體背景風格
程序代碼
# step1:導入數據
df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")
# step2:繪制熱力圖
# 畫布 plt.figure(figsize = (12, 10), # 畫布尺寸 dpi = 80) # 分辨率 #熱力圖 sns.heatmap(df.corr(), # 相關性矩陣數據集 xticklabels = df.corr().columns, # 橫軸標簽 yticklabels = df.corr().columns, # 縱軸標簽 cmap = 'RdYlGn', # 色譜(調色板) center = 0, # 將數據設置為圖例中的均值數據,即圖例中心的數據值 annot = True) # annot默認為False,當annot為True時,在heatmap中每個方格寫入數據
# step3:圖像裝飾
# 設置標題和字體 plt.title('Correlogram of mtcars' # 設置標題 , fontsize = 22) # 設置標題的尺寸 plt.xticks(fontsize = 12) # 設置橫坐標標尺字體尺寸 plt.yticks(fontsize = 12) # 設置橫坐標標尺字體尺寸 plt.show()
博文總結
DataFrame.corr(method='pearson', min_periods=1)
參數說明:
method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}
pearson:Pearson相關系數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關系數計算,針對非線性 數據便會有誤差。
kendall:用於反映分類變量相關性的指標,即針對無序序列的相關系數,非正太分布的數據
spearman:非線性的,非正太分析的數據的相關系數
min_periods:樣本最少的數據量
返回值:各類型之間的相關系數DataFrame表格。
seaborn.heatmap
https://www.cntofu.com/book/172/docs/30.md
seaborn.heatmap(data, vmin=None, vmax=None, cmap=None,
center=None, robust=False, annot=None, fmt='.2g', annot_kws=None,
linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False,
xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)
將矩形數據繪制為顏色編碼矩陣。
這是一個坐標軸級的函數,如果沒有提供給ax
參數,它會將熱力圖繪制到當前活動的軸中。除非cbar
為False或為cbar_ax
提供單獨的Axes,否則將使用此軸空間的一部分繪制顏色圖。
參數:data
:矩形數據集
可以強制轉換為ndarray格式數據的2維數據集。如果提供了Pandas DataFrame數據,索引/列信息將用於標記列和行。
vmin, vmax
:浮點型數據,可選參數。
用於錨定色彩映射的值,否則它們是從數據和其他關鍵字參數推斷出來的。
cmap
:matplotlib 顏色條名稱或者對象,或者是顏色列表,可選參數。
從數據值到顏色空間的映射。 如果沒有提供,默認值將取決於是否設置了“center”。
center
:浮點數,可選參數。
繪制有色數據時將色彩映射居中的值。 如果沒有指定,則使用此參數將更改默認的
cmap
。
robust
:布爾值,可選參數。
如果是True,並且
vmin
或vmax
為空,則使用穩健分位數而不是極值來計算色彩映射范圍。
annot
:布爾值或者矩形數據,可選參數。
如果為True,則在每個熱力圖單元格中寫入數據值。 如果數組的形狀與
data
相同,則使用它來代替原始數據注釋熱力圖。
fmt
:字符串,可選參數。
添加注釋時要使用的字符串格式代碼。
annot_kws
:字典或者鍵值對,可選參數。
當
annot
為True時,ax.text
的關鍵字參數。
linewidths
:浮點數,可選參數。
划分每個單元格的行的寬度。
linecolor
:顏色,可選參數
划分每個單元的線條的顏色。
cbar
:布爾值,可選參數。
描述是否繪制顏色條。
cbar_kws
:字典或者鍵值對,可選參數。
fig.colorbar的關鍵字參數。
cbar_ax
:matplotlib Axes,可選參數。
用於繪制顏色條的軸,否則從主軸獲取。
square
:布爾值,可選參數。
如果為True,則將坐標軸方向設置為“equal”,以使每個單元格為方形。
xticklabels, yticklabels
:“auto”,布爾值,類列表值,或者整形數值,可選參數。
如果為True,則繪制數據框的列名稱。如果為False,則不繪制列名稱。如果是列表,則將這些替代標簽繪制為xticklabels。如果是整數,則使用列名稱,但僅繪制每個n標簽。如果是“auto”,將嘗試密集繪制不重疊的標簽。
mask
:布爾數組或者DataFrame數據,可選參數。
如果為空值,數據將不會顯示在
mask
為True的單元格中。 具有缺失值的單元格將自動被屏蔽。
ax
:matplotlib Axes,可選參數。
繪制圖的坐標軸,否則使用當前活動的坐標軸。
kwargs
:其他關鍵字參數。
所有其他關鍵字參數都傳遞給
ax.pcolormesh
。
返回值:ax
:matplotlib Axes