如何在Python中放大图像轴?
我正在尝试制作一个热力图,涉及两个变量。代码中有问题的部分大概是这样的:
import numpy as np
import matplotlib.pyplot as plt
x = [0.99, 0.98, 0.99, 1, 1]
y = [1, 1, 0.5, 0.8, 1]
heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
plt.clf()
plt.imshow(heatmap, extent=extent, origin="lower")
plt.show()
这里我只用了我想要绘制的数据的前几行。其中一个变量的值大多集中在0.95到1之间,而另一个变量的值变化很大(甚至可以达到几万)。问题是输出的图像看起来像下面这样。
我想要拉宽x轴,这样我就能更详细地看到绘制的区域。我试过使用axis()
这个命令,但它只是增加了空白区域(也就是没有数据的地方)。有没有什么办法可以做到这一点呢?
1 个回答
3
如果你要使用 extent
,请注意:
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
这段代码会给出 extent=[0.99,1,1,1]
。你应该把它改成类似这样的:
extent = [min(xedges), max(xedges), min(yedges), max(yedges)]
你可能还会发现 plt.axis("equal")
很有用。imshow
默认会进行插值,这通常不是你想要的。使用 interpolation="none"
可以停止这个插值。这个相关的问题可能会解决你更多的困惑: