我正在尝试使用imshow显示2D数据的热图,我想更新ticklabels以反映我的数据。但是当我使用get_x/yticklabels
时,事情会让人感到困惑:
fig, axes = plt.subplots()
axes.imshow(np.random.rand(5,5), interpolation='none')
fig.canvas.draw() # or just draw()
[t.get_text() for t in axes.get_yticklabels()]
# >>> [u'0.0', u'0', u'1', u'2', u'3', u'4', u'']
[t.get_text() for t in axes.get_xticklabels()]
# >>> [u'0', u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'']
现在到set_xticklabels
,我需要给它与标签相同的长度数组,但你可以看到有这些空白标签,所以我不知道如何继续我的脚本。
答案 0 :(得分:0)
不要手动编辑刻度标签,而是使用extent
的{{1}}参数:
范围:标量(左,右,下,上),可选,默认:无
数据坐标中左下角和右上角的位置。如果为None,则定位图像使得像素中心落在从零开始(行,列)的索引上。
(Source)
这应该可以根据数组的大小以及每个轴的上限和下限自动计算滴答。