我有一个NxN数组,我使用matplotlib.pyplot.imshow()
在Python中绘图。 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")
正如您在上面的代码中所看到的,我已经尝试弄乱plt.figsize
来尝试提高分辨率,但无济于事。我也尝试了各种输出格式(.pdf,.ps,.eps,.png),但这些都生成了比我想要的分辨率更低的图像。 .ps,.eps和.pdf图像看起来完全相同。
首先,我的问题是否存在于imshow()
中,还是我的代码的某些其他方面需要更改才能生成更高分辨率的图像?
其次,如何制作更高分辨率的图像?
答案 0 :(得分:7)
plt.figsize()
只会在保持默认dpi的同时更改图形的大小(以英寸为单位)。您可以通过在保存图形时传递dpi
关键字参数来设置图形的分辨率:
fig.savefig('filename.extension', dpi=XXX)
因此,如果您的数字大小为4x6并使用dpi=300
保存,则最终会得到1200x1800分辨率的图像。
您还可以使用matplotlibrc
设置默认数字大小和dpi。