使用pyplot.matshow()函式新增繪圖示題
阿新 • • 發佈:2020-06-17
僅供參考
import matplotlib.pyplot as plt import numpy as np def samplemat(dims): """Make a matrix with all zeros and increasing elements on the diagonal""" aa = np.zeros(dims) for i in range(min(dims)): aa[i,i] = i return aa fig = plt.figure() ax = fig.add_subplot(111) plt.title('title aaa') ax.matshow(samplemat((15,15)),cmap='viridis') plt.show()
補充知識:給某陣列a通過plt.matshow(a)方法得到的熱圖heatmap新增標註
先匯入兩個模組
import numpy as np
from matplotlib import pyplot as plt
figsize是你自己可以設定的圖片大小尺寸
fig = plt.figure(figsize=(40,40))
ax = fig.add_subplot(1,1,1)
變數a是從一個csv檔案裡把你的陣列download下來
注意:這裡一定要用ax.imshow而不是ax.matshow
a=np.loadtxt('matrix.csv',delimiter=',')
ax.imshow(a,cmap='coolwarm')
設定熱圖的x軸和y軸刻度
注意:你設定的刻度範圍一定要和你陣列的行和列的範圍一致。我的陣列是一個四行60列的,所以我可以把我的x軸和y軸刻度設定成如下所示。
另外:tick1=np.arange(1,61,5)中的5,表示step步長
tick1=np.arange(1,5) tick2=np.arange(0,4,1) ax.set_yticks(tick2) ax.set_xticks(tick1)
給你的x軸和y軸刻度設定標籤
注意:你設定的刻度標籤一定要能和你的x軸和y軸刻度一一對應起來。
ax.set_yticklabels(label,fontsize=30)中的fontsize指的是刻度標籤尺寸大小,這個你自己定
label=['L','O','V','E'] tick3=np.arange(12) ax.set_yticklabels(label,fontsize=30) ax.set_xticklabels(tick3,fontsize=30)
設定x軸和y軸標籤還有熱圖標籤
plt.ylabel('love',fontsize=30) plt.xlabel('number',fontsize=30) plt.title("my_matrix",fontsize=50)
儲存熱圖
plt.savefig('myfig.png',pad_inches = 0.2,bbox_inches = 'tight')
plt.show()
我的熱圖得到是這樣的:
你可以參考我的製作方式,給你的熱圖新增標註,避開不必要的坑
以上這篇使用pyplot.matshow()函式新增繪圖示題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。