1. 程式人生 > 程式設計 >使用pyplot.matshow()函式新增繪圖示題

使用pyplot.matshow()函式新增繪圖示題

僅供參考

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()

使用pyplot.matshow()函式新增繪圖示題

補充知識:給某陣列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()函式新增繪圖示題

你可以參考我的製作方式,給你的熱圖新增標註,避開不必要的坑

以上這篇使用pyplot.matshow()函式新增繪圖示題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。