seaborn.heatmap刻度及標簽設置


跑實驗需要畫heatmap,使用seaborn.heatmap挺方便的,但是在刻度和標簽字體設置上網上講的不是很清楚,本文主要記錄 ( x軸 / y軸 / colorbar ) 上的刻度ticks及標簽label的文本設置。

python_version=2.7

數據格式用的pandas.DataFrame.

x_tick=['a','b','c']
y_tick=['x','y','z']
X=[[1,2,3],[4,5,6],[7,8,9]]
data={}
for i in range(3):
    data[x_tick[i]] = X[i]
pd_data=pd.DataFrame(data,index=y_tick,columns=x_tick)
print(pd_data)

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from pylab import mpl


mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman'
font = {'family': 'sans-serif',
            'color': 'k',
            'weight': 'normal',
            'size': 20,}


f, ax = plt.subplots(figsize=(8, 8))
cmap = sns.cm.rocket_r  #colorbar顏色反轉
ax = sns.heatmap(pd_data, annot=True, ax=ax, fmt='.1f', cmap=cmap) #畫heatmap,具體參數可以查文檔

plt.xlabel('x_label',fontsize=20, color='k') #x軸label的文本和字體大小
plt.ylabel('y_label',fontsize=20, color='k') #y軸label的文本和字體大小
plt.xticks(fontsize=20) #x軸刻度的字體大小(文本包含在pd_data中了)
plt.yticks(fontsize=20) #y軸刻度的字體大小(文本包含在pd_data中了)
plt.title('title',fontsize=20) #圖片標題文本和字體大小
#設置colorbar的刻度字體大小
cax = plt.gcf().axes[-1] 
cax.tick_params(labelsize=20)
#設置colorbar的label文本和字體大小
cbar = ax.collections[0].colorbar
cbar.set_label(r'$NMI$',fontdict=font)

plt.show()

可能代碼上會存在冗余,但起碼可以對各個部分的文本內容和字體大小進行單獨設置了,已經滿足我的需求了。

有什么更好的希望批評指正 _(:з」∠)_

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM