如何在Python中放大图像轴?

时间:2014-06-12 00:26:42

标签: python matplotlib

我正在尝试创建两个变量的热图。代码的问题部分看起来像这样:

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附近,而另一个变量则更自由地运行(它甚至可以达到数十万个)。问题是输出如下图所示。

enter image description here

我想加宽x轴,这样我就可以更详细地看到正在绘制的区域。我已经尝试使用axis()命令,但它只是添加了空格(即没有数据的空格)。有办法吗?

1 个答案:

答案 0 :(得分: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"阻止了这一点。这个相关问题可能会解决您的更多问题:

figure of imshow() is too small