根据值的范围在 matplotlib 热图中创建刻度
Creating ticks in a matplotlib heatmap based on range of values
我正在 matplotlib 中创建一个热图,其中 x 轴和 y 轴是测量的一些参数,颜色代表测量值。 Matplotlib 根据值的索引自动给出轴刻度。例如,如果我在 x 轴上测量 50 个不同的值,则刻度将从 0 到 50。但是,此参数的实际值例如是从 -30 到 80,我希望 matplotlib 基于此创建刻度最小值和最大值。
我试过使用 set_xticks 但这需要刻度线的位置及其标签。我在想我应该能够给 matplotlib 一个最小值 -34 和最大值 67,并让它在适当的位置创建漂亮的刻度,但我一直无法找到如何。
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)。
希望对您有所帮助。
`
在 matplotlib 网站上深入研究示例后,我在 imshow
中找到了这个名为 extent
的选项,您可以在其中将默认的基于零的坐标替换为您自己的最小值和最大值两个轴。
我正在 matplotlib 中创建一个热图,其中 x 轴和 y 轴是测量的一些参数,颜色代表测量值。 Matplotlib 根据值的索引自动给出轴刻度。例如,如果我在 x 轴上测量 50 个不同的值,则刻度将从 0 到 50。但是,此参数的实际值例如是从 -30 到 80,我希望 matplotlib 基于此创建刻度最小值和最大值。
我试过使用 set_xticks 但这需要刻度线的位置及其标签。我在想我应该能够给 matplotlib 一个最小值 -34 和最大值 67,并让它在适当的位置创建漂亮的刻度,但我一直无法找到如何。
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)。
希望对您有所帮助。
`
在 matplotlib 网站上深入研究示例后,我在 imshow
中找到了这个名为 extent
的选项,您可以在其中将默认的基于零的坐标替换为您自己的最小值和最大值两个轴。