我想将自定义刻度线添加到以下plt.imshow()
图中(见下文):
import numpy as np
import matplotlib.pyplot as plt
zmm = np.linspace(0,121,121).reshape(11,11)
plt.imshow(zmm, cmap = 'Blues')
plt.show()
字符串
的数据
我尝试添加我需要的自定义刻度线:
xticks = np.linspace(6.5,7.5,6)
yticks = np.linspace(.14,.18,6)
plt.imshow(zmm, cmap = 'Blues')
plt.xticks(xticks)
plt.show()
型
下图显示了结果(同时尝试x和yticks会产生更差的结果)。我不能用这个reference来解决这个问题。
的
2条答案
按热度按时间643ylb081#
IIUC,您希望使用
xticks
和yticks
的值重新标记刻度(0..10)。了解 tick(位置)和 label(文本)之间的区别很重要。去看医生。在您的情况下,刻度将保持在相同的位置,而只有标签会改变:
字符串
输出量:
的数据
6ss1mwsb2#
或者,如果这实际上不是一个图像,您可能需要考虑使用
pcolormesh
,它接受x
和y
值,这些值用于确定刻度。imshow
使用与数组中的索引对应的刻度(如果不传递x和y点,pcolormesh
也会这样做)。为了使代码正常工作,我更改了xticks
和yticks
中的点数,因为刻度数和行/列数(取决于x或y)需要一一对应。另外,请注意,
pcolormesh
不像imshow
那样默认为方形图,因此添加了一条线使其成为方形。字符串
x1c 0d1x的数据
您还将注意到,
pcolormesh
将原点放置在左下角(像典型的图形一样),而不是imshow
将原点放置在左上角。