首页 > 编程语言 > 使用pyplot.matshow()函数添加绘图标题
2020
10-08

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

补充知识:给某数组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()函数添加绘图标题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。

编程技巧