我正在尝试使用imshow在绘图中包含一个嵌入图像(椭圆体),并将该绘图保存在Python脚本中。以下是用于在绘图脚本中添加插图图像的实际代码:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 4), constrained_layout=True)
X = range(10)
ax1.plot(X, [x*x for x in X])
ax2.plot(X, [x*x for x in X])
insetfig= mpimg.imread('inset.eps')
newax = fig.add_axes([0.095, 0.673, 0.22, 0.22], anchor='NW', zorder=0, transform=ax1.transAxes)
newax.imshow(insetfig)
newax.axis('off')
# plt.savefig('figure.eps')
plt.show()

问题是,在将绘图保存为eps (或任何其他格式)时,我注意到插图的图像质量有严重的损失。左侧图是我通过在python脚本中放置inset而实现的。我使用了相同的插图(椭圆体),并直接将其添加到latex文件的右子图中。如你所见,右边的质量更好。但是,我不喜欢通过Latex包含inset。我想永久地从Python中添加插图。如何提高Python中嵌入的图像质量?
发布于 2021-07-25 11:12:56
即使用插图保存的png格式的绘图看起来也更好。只有eps版本存在这个分辨率不佳的问题。在最终保存中增加dpi解决了这个问题:
plt.savefig('figure.eps', dpi=300)
结果改进(如左图所示):

PS:如果您不能真正看到嵌入图像质量的差异,请在单独的选项卡中打开Q&A数字,您将清楚地看到差异。
https://stackoverflow.com/questions/68512560
复制相似问题