python matplotlib畫圖使用colorbar工具自定義顏色 colorbar(draw colorbar without any mapple/plot)
自定義colorbar可以畫出任何自己想要的colorbar,自由自在、不受約束,不依賴于任何已有的圖(plot/mappable)。這里使用的是mpl.colorbar.ColorbarBase類,而colorbar類必須依賴于已有的圖。
參數可以參考下面的描述->matplotlib:
class matplotlib.colorbar.ColorbarBase(ax, cmap=None, norm=None, alpha=None, values=None, boundaries=None, orientation=‘vertical', ticklocation=‘auto', extend=‘neither', spacing=‘uniform', ticks=None, format=None, drawedges=False, filled=True, extendfrac=None, extendrect=False, label='')[source]
參數簡單描述
ax :可用于設置colorbar的位置、長、寬
norm :用于規范化–設置顏色條最大最小值
cmap:顏色(可參考本篇博文的最后部分——推薦色帶與自定義色帶)
boundaries:要想使用extend,在norm之外,必須要有兩個額外的boundaries
orientation:colorbar方向,躺平or垂直
extend:延伸方向(在norm之外colorbar可延伸)
ticks:自定義各段的tick(記號)給一個例子,首先定義一下橫縱坐標的名稱,以及df_int:
給一個例子,首先定義一下橫縱坐標的名稱,以及df_int:
labels_int = ['A', 'B', 'C', 'D']
variables_int = ['A', 'B', 'C', 'D']
# x_normed_int 可以是一個4*4的數組,經過歸一化的
df_int = pd.DataFrame(, columns=variables_int, index=labels_int)
接下來就是畫圖了:
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(df, interpolation='nearest', cmap='GnBu')
fig.colorbar(cax)
tick_spacing = 1
ax.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
ax.yaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
ax.set_xticklabels([''] + list(df.columns))
ax.set_yticklabels([''] + list(df.index))
plt.show()
其中:
cax = ax.matshow(df, interpolation='nearest', cmap='GnBu')
可以通過cmap修改,得到不同的顏色帶
最終可以看到結果如下圖: