如何在Python中放大图像轴?

3 投票
1 回答
958 浏览
提问于 2025-04-18 09:30

我正在尝试制作一个热力图,涉及两个变量。代码中有问题的部分大概是这样的:

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" 可以停止这个插值。这个相关的问题可能会解决你更多的困惑:

imshow() 的图形太小了

撰写回答