Matplotlib imshow()折叠为不同数量级的轴值

时间:2019-05-31 18:32:54

标签: python matplotlib heatmap

我正在尝试使用imshow()绘制热图。当我的x和y数据值都具有相似的数量级时,它可以正常工作。但是,如果x和y的数量级不同(例如,所有0 1.0),则会沿轴以小数字折叠该图,如下所示。如何避免这种情况?

plot

2 个答案:

答案 0 :(得分:0)

您将要specify the size of the figure, using figsize

Figsize接受具有两个浮点数的元组:(宽度,高度)

imshow()一起使用:

fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()

或者,如果您只想使用pyplot.plot(),则可以尝试以下操作:

plt.figure(figsize=(15,5))

https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.figure.html

答案 1 :(得分:0)

偶然发现了这个问题(由于我的措词/关键字差异,之前没有找到它),它具有我正在寻找的答案。

figure of imshow() is too small

如果其他人使用我的搜索字词,我将在这里留下问题作为指针。

正在发生的事情(在链接上有解释)是imshow默认将其aspect参数默认设置为"equal",这导致了我最初的问题中所述的行为。要解决此问题,请设置aspect="auto"。例如:

ax.imshow(data, aspect="auto", **kwargs)