在this问题中,他们回答了如何在matplotlib中正确使用imshow
的网格。我试图像他们一样做,但我想删除所有的刻度(x和y)。当我尝试这样做时,它也消除了网格,我只是显示了没有网格和刻度的图像。我的代码是:
fig, ax = plt.subplots()
data = np.random.rand(20,20)
ax.imshow(data)
ax.set_xticks(np.arange(20))
ax.set_xticklabels(np.arange(20))
ax.set_xticks(np.arange(20)+0.5, minor=True)
ax.grid(which='minor',color='w',axis='x',linewidth=6)
ax.axes.xaxis.set_visible(False)
ax.axes.yaxis.set_visible(False)
plt.show()
字符串
有没有人如何删除刻度,同时保持网格(沿着x轴在我的情况下)?
3条答案
按热度按时间pkbketx91#
移除轴(通过set_visible(False))也将移除网格。
但是,有一个解决方案将脊椎和刻度线/标签分别设置为不可见:
字符串
输出为:
x1c 0d1x的数据
注意,您可能需要调整xlim/ylim和网格参数以满足您的需要。
af7jpaap2#
这并不完美,但您可以将tick标签设置为空列表。
字符串
的数据
仅保留栅格中使用的次要xtick。
vc6uscn93#
请注意,
ax
是一个AxesImage
示例。可以通过ax.axes.xaxis
和ax.axes.yaxis
访问各个Axis
对象。使用
Axis.set_ticks()
:字符串