仅供参考
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, 61, 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()函数添加绘图标题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。