使用imshow来混淆ticklabels

时间:2016-02-15 01:08:24

标签: python matplotlib

我正在尝试使用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,我需要给它与标签相同的长度数组,但你可以看到有这些空白标签,所以我不知道如何继续我的脚本。

1 个答案:

答案 0 :(得分:0)

不要手动编辑刻度标签,而是使用extent的{​​{1}}参数:

  

范围:标量(左,右,下,上),可选,默认:无

     

数据坐标中左下角和右上角的位置。如果为None,则定位图像使得像素中心落在从零开始(行,列)的索引上。

     

Source

这应该可以根据数组的大小以及每个轴的上限和下限自动计算滴答。