seaborn是專門用于統計數據可視化的包,可媲美R語言中的ggplot2包。本文介紹用seaborn繪制熱力圖。
環境
- python3.9
- win10 64bit
- seaborn==0.11.1
- matplotlib==3.3.4
- pandas==1.2.1
數據
熱力圖的一個常見應用場景是繪制相關系數熱力圖,數據準備一個相關系數矩陣。
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['figure.dpi'] = 80 # 圖形分辨率
pd.options.display.notebook_repr_html=False # 表格顯示
# 相關系數矩陣
np.random.seed(1) # 隨機種子
mat=pd.DataFrame(np.random.rand(3,6),columns=list('abcdef')).corr()
mat
a b c d e f
a 1.000000 0.297407 -0.610065 -0.908297 -0.997893 -0.991160
b 0.297407 1.000000 -0.937936 0.129262 -0.234835 -0.421449
c -0.610065 -0.937936 1.000000 0.222660 0.557370 0.709796
d -0.908297 0.129262 0.222660 1.000000 0.933525 0.844767
e -0.997893 -0.234835 0.557370 0.933525 1.000000 0.980463
f -0.991160 -0.421449 0.709796 0.844767 0.980463 1.000000
繪制
調用heatmap
方法繪制熱力圖。
# 熱力圖
sns.heatmap(mat)
plt.show()
heatmap_6_0.png
調整調色板
設置vmin
和vmax
參數可以調整調色板的下限值和上限值。
# 設置調色板上下限值
sns.heatmap(mat,vmin=0,vmax=1)
plt.show()
heatmap_8_0.png
設置cmap
參數,可以修改調色板樣式。
# 修改調色板
sns.heatmap(mat,cmap='YlGnBu')
plt.show()
heatmap_10_0.png
隱藏圖例
設置參數cbar=False
可以隱藏圖例。
# 隱藏圖例
sns.heatmap(mat,cbar=False)
plt.show()
heatmap_12_0.png
顯示數值
設置參數annot=True
可以顯示熱力圖上的具體數值,設置fmt
參數,可以修改數值顯示的樣式。
# 顯示數值熱力圖
sns.heatmap(mat,annot=True,fmt='.3f')
plt.show()
heatmap_14_0.png
更多參考seaborn熱力圖