Python Matplotlib imshow()网格大小较大时网格不均匀

Python Matplotlib imshow()网格大小较大时网格不均匀,python,matplotlib,imshow,Python,Matplotlib,Imshow,我试图使用matplotlib中的imshow()函数在177 X 177网格中绘制颜色值。当我在一个小的(30X30)网格上运行以下代码时(即,我设置width=30),它生成的图像有漂亮的、大小均匀的正方形。当我在更大的网格(150X150)上运行它时,正方形的比例并不均匀。有些在一个或两个维度上拉伸。下面是我正在使用的代码的简化版本: grid = [[]]*width for i in range(width): grid[i] = [[]]*width for j in

我试图使用matplotlib中的imshow()函数在177 X 177网格中绘制颜色值。当我在一个小的(30X30)网格上运行以下代码时(即,我设置
width=30
),它生成的图像有漂亮的、大小均匀的正方形。当我在更大的网格(150X150)上运行它时,正方形的比例并不均匀。有些在一个或两个维度上拉伸。下面是我正在使用的代码的简化版本:

grid = [[]]*width
for i in range(width):
    grid[i] = [[]]*width
    for j in range(width):
        grid[i][j] = (random(), random(), random())

plt.imshow(grid, interpolation="none", aspect=1)
plt.savefig("test.png")
你知道如何使网格均匀吗?我已经尝试了所有讨论的纵横比,但似乎并没有解决问题。我使用的是Python 2.7.6和matplotlib版本1.3.1

编辑: 这是一张图片,显示了如果我一直放大,大网格中的细胞会是什么样子。这是使用稍微不同的着色函数获得的,其中9个细胞的簇通过增加色调着色。这更清楚地显示了不均匀的形状。如果您愿意,我可以包含代码,但是我可以使用(不太复杂的)随机代码获得相同的行为。

下面是当我使用一个小网格时它的样子(再次放大):


好吧,我想出来了。问题是我在保存图像时没有使用足够高的dpi
plt.savefig(“test.png”,dpi=1000)
生成的图像中,即使是一个大的网格也会用大小均匀的正方形来描绘


通过不增加较大网格的dpi,我实际上是在尝试以相同的像素量绘制更多信息,因此分辨率降低到单元格无法成形的程度。

我无法重现您的问题,请发布图像。另外,
grid=np.random.rand((width,width,3))
将替换嵌套循环。图像已发布。很好地理解了代码!我快速编写了这段代码,以便提供一个更简单的示例。