强制pyplot.imshow()生成更高分辨率的图像

Neu*_*tar 3 python resolution image matplotlib

我有一个NxN数组,我正在使用Python绘图matplotlib.pyplot.imshow().N将非常大,我希望我的最终图像具有匹配的分辨率.但是,在随后的代码中,图像分辨率似乎没有随着N的增加而改变.我认为imshow()(至少我如何使用它)具有固定的最小像素大小,该大小比显示具有全分辨率的NxN阵列所需的大.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

array = np.loadtxt("output.dat",unpack=True)
plt.figsize=(30.0, 30.0)
im = plt.imshow(array,cmap='hot')
plt.colorbar(im)
plt.savefig("mandelbrot.pdf")
Run Code Online (Sandbox Code Playgroud)

正如你在上面的代码中看到的那样,我已经尝试过试图plt.figsize增加分辨率,但无济于事.我也尝试了各种输出格式(.pdf,.ps,.eps,.png),但这些都生成了比我想要的分辨率更低的图像..ps,.eps和.pdf图像看起来完全相同.

首先,我的问题是否存在imshow()或是否需要更改我的代码的其他方面以产生更高分辨率的图像?

其次,如何生成更高分辨率的图像?

jon*_*har 7

plt.figsize()只会以英寸为单位更改图形的大小,同时保持默认的dpi.您可以通过在dpi保存图形时传递关键字参数来设置图形的分辨率:

    fig.savefig('filename.extension', dpi=XXX)
Run Code Online (Sandbox Code Playgroud)

因此,如果您的数字大小为4x6并保存,dpi=300那么最终会得到1200x1800分辨率的图像.

您还可以使用设置默认的数字大小和dpi matplotlibrc.