Python資料處理從零開始----第四章(視覺化)(14)使用seaborn繪製熱圖
目錄
Python資料處理從零開始----第四章(視覺化)①Matplotlib包
Python資料處理從零開始----第四章(視覺化)②圖形和軸
Python資料處理從零開始----第四章(視覺化)③散點圖和誤差棒
Python資料處理從零開始----第四章(視覺化)④誤差圖
Python資料處理從零開始----第四章(視覺化)⑤(韋恩圖)
Python資料處理從零開始----第四章(視覺化)⑥(畫布設定)
Python資料處理從零開始----第四章(視覺化)⑦(多圖合併)
Python資料處理從零開始----第四章(視覺化)⑧火山圖
Python資料處理從零開始----第四章(視覺化)⑨線性相關曲線
Python資料處理從零開始----第四章(視覺化)⑩ROC曲線
Python資料處理從零開始----第四章(視覺化)①①多分類ROC曲線
Python資料處理從零開始----第四章(視覺化)①②堆積柱狀圖
Python資料處理從零開始----第四章(視覺化)①③多變數繪圖
Python資料處理從零開始----第四章(視覺化)(14)使用seaborn繪製熱圖
seaborn.heatmapHeat maps顯示數字表格資料,其中單元格根據包含的值著色。 熱圖非常適合使這種資料的趨勢更加明顯,特別是在訂購資料並且存在聚類時。
vmin, vmax : 顯示的資料值的最大和最小的範圍
ax = sns.heatmap(data,vmin=0, vmax=1)
**cmap : matplotlib顏色表名稱或物件,或顏色列表,可選從資料值到色彩空間的對映。
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu')
center :指定色彩的中心值
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.7)
robust : 如果“Ture”和“ vmin或” vmax不存在,則使用強分位數計算顏色對映範圍,而不是極值。
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.5, robust=False) #Set1
annot如果為True,則將資料值寫入每個單元格中
ax = sns.heatmap(data,vmin=0, vmax=1, cmap = 'GnBu', center=0.5, robust=False,annot=True) #Set1
fmt :表格裡顯示資料的型別
fmt ='.0%'#顯示百分比 fmt ='f' 顯示完整數字 = fmt ='g' fmt ='.3'顯示小數的位數 = fmt ='.3f' = fmt ='.3g'
linewidths :劃分每個單元格的線的寬度。
linecolor:劃分每個單元格的線的顏色。
cbar :是否繪製顏色條:colorbar,預設繪製
cbar_kws : 未知**cbar_ax : **顯示x-y座標,而不是節點的編號
square :為‘True’時,整個網格為一個正方形
xticklabels, yticklabels :可以以字串進行命名,也可以調節編號的間隔,也可以不顯示座標
ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False, xticklabels =['12','22'])#字串命名 ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False, xticklabels =2)#編號間隔為2 ax = sns.heatmap(uniform_data,cmap = 'RdBu', center=0,cbar = True, square = False, xticklabels =False)#不顯示座標
舉例說明:
繪製一個numpy陣列的熱圖:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() uniform_data = np.random.rand(10, 12) ax = sns.heatmap(uniform_data)

image
更改色彩圖的限制:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() uniform_data = np.random.rand(10, 12) ax = sns.heatmap(uniform_data, vmin=0, vmax=1)

image
以0為中心的資料繪製熱圖:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() normal_data = np.random.randn(10, 12) ax = sns.heatmap(normal_data, center=0)

image
用有意義的行和列標籤繪製資料框:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") ax = sns.heatmap(flights)

image
使用整數格式用數值註釋每個單元格:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") ax = sns.heatmap(flights, annot=True, fmt="d")

image
在每個單元格之間新增行:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") ax = sns.heatmap(flights, linewidths=.5)

image
使用不同的顏色表:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") ax = sns.heatmap(flights, cmap="YlGnBu")

image
以特定值居中色彩圖:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") ax = sns.heatmap(flights, center=flights.loc["January", 1955])

image
繪製每個其他列標籤並且不要繪製行標籤:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() data = np.random.randn(50, 20) ax = sns.heatmap(data, xticklabels=2, yticklabels=False)

image
不要繪製顏色條:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() data = np.random.randn(10, 10) ax = sns.heatmap(data, cbar=False)

image
對色條使用不同的軸:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() import matplotlib.pyplot as plt flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") grid_kws = {"height_ratios": (.9, .05), "hspace": .3} f, (ax, cbar_ax) = plt.subplots(2, gridspec_kw=grid_kws) ax = sns.heatmap(flights, ax=ax,cbar_ax=cbar_ax,cbar_kws={"orientation": "horizontal"})

image
使用掩碼只繪製矩陣的一部分:
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() corr = np.corrcoef(np.random.randn(10, 200)) mask = np.zeros_like(corr) mask[np.triu_indices_from(mask)] = True with sns.axes_style("white"): ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True)

image
import numpy as np; np.random.seed(0) import seaborn as sns; sns.set() import matplotlib.pyplot as plt data = np.random.rand(10, 12) f, ax = plt.subplots(figsize=(8,5)) ax = sns.heatmap(data,cmap = 'RdBu',ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g') #設定座標字型方向 label_y = ax.get_yticklabels() plt.setp(label_y, rotation=45, horizontalalignment='right') label_x = ax.get_xticklabels() plt.setp(label_x, rotation=45, horizontalalignment='right') plt.xlabel('x.num')#設定座標名稱 plt.ylabel('y.num') plt.title('Plotting')#標題 plt.show()

image