根据值范围在matplotlib热图中创建刻度

时间:2015-02-11 18:42:27

标签: python matplotlib heatmap

我在matplotlib中创建一个热图,其中x和y轴是测量的某个参数,颜色代表测量值。 Matplotlib根据值的索引自动给出轴刻度。例如,如果在x轴上我测量50个不同的值,则滴答将从0到50.但是该参数的实际值例如是-30到80,我希望matplotlib基于此创建滴答最小和最大。

我尝试过使用set_xticks但这需要刻度线的位置以及它们的标签。我想我应该能够给matplotlib一个-34分钟和最多67分,并让它在正确的位置创建漂亮的刻度,但我还是找不到。

2 个答案:

答案 0 :(得分:2)

在matplotlib网站上的一些示例中,我在名为imshow的{​​{1}}中找到了此选项,您可以在其中使用您自己的值替换默认的从零开始的坐标,以获取两者的最小值和最大值轴。

结果是this image

答案 1 :(得分:1)

不会pyplot.xlim()或pyplot.figure.set_xlim()在这种情况下工作吗?只需说出:

import matplotlib.pyplot as plt
plt.xlim(-30,80)
plt.ylim(0,100) #Or whatever

据我所知,set_xticks函数太复杂了。使用那个,您可以指定要作为刻度标签等放置的内容。例如,如果要将数字系列与一系列字母相关联。例如:

x = [-8,-6,-4,-2,0,2,4,6,8]
labels = ['K2','K4','K6','K8','M0','M2','M4','M6','M8']
plt.xticks(x, labels)

我个人使用的是将整数转换为恒星光谱类型(这是相关的,因为我是天文学家; p)。

希望这有帮助。

`