强制 pyplot.imshow() 生成更高分辨率的图像
Force pyplot.imshow() to produce image with higher resolution
我有一个 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()
是否存在我的问题,或者我的代码是否有其他方面需要更改以生成更高分辨率的图像?
其次,如何生成更高分辨率的图像?
plt.figsize()
将仅更改以英寸为单位的图形大小,同时保持默认 dpi。您可以在保存图形时通过传递 dpi
关键字参数来设置图形的分辨率:
fig.savefig('filename.extension', dpi=XXX)
因此,如果您的图形尺寸为 4x6 并使用 dpi=300
保存,您最终会得到分辨率为 1200x1800 的图像。
您还可以使用 matplotlibrc
设置默认图形大小和 dpi。
我有一个 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()
是否存在我的问题,或者我的代码是否有其他方面需要更改以生成更高分辨率的图像?
其次,如何生成更高分辨率的图像?
plt.figsize()
将仅更改以英寸为单位的图形大小,同时保持默认 dpi。您可以在保存图形时通过传递 dpi
关键字参数来设置图形的分辨率:
fig.savefig('filename.extension', dpi=XXX)
因此,如果您的图形尺寸为 4x6 并使用 dpi=300
保存,您最终会得到分辨率为 1200x1800 的图像。
您还可以使用 matplotlibrc
设置默认图形大小和 dpi。