当前位置:主页 > 软件编程 > Python代码 >

使用pyplot.matshow()函数添加绘图标题

时间:2022-07-03 09:31:37 | 栏目:Python代码 | 点击:

仅供参考

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

我的热图得到是这样的:

你可以参考我的制作方式,给你的热图添加标注,避开不必要的坑

您可能感兴趣的文章:

相关文章