gpt4 book ai didi

python - 在 matplotlib 中调整图形质量

转载 作者:行者123 更新时间:2023-11-28 21:49:54 24 4
gpt4 key购买 nike

我已经编写了一些代码来在 matplotlib 中生成一个多面板图形。为了使图形在文档中看起来更清晰,我尝试增加 dpi。不过,我发现这也改变了图形、字体、线条等的大小,如以下更简单的示例所示:

#First normal figure
fig, axarr = plt.subplots(2,2, figsize=(6,6))
for i,ax in enumerate(axarr.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)
plt.tight_layout()

#Again, with higher dpi
fig, axarr = plt.subplots(2,2, figsize=(6,6), dpi=200)
for i,ax in enumerate(axarr.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)

plt.tight_layout()
plt.show()

在我的电脑上(使用matplotlib 1.4.3),第二个图的尺寸更大,文字也更大,所以y轴标签重叠。如果不使用 plt.tight_layout(),子图轴的重叠也更差。显然,这在试图制作更高质量的图形时没有帮助。这是怎么回事,我怎样才能改变图形质量并保持图形外观不变?当我调整子图参数、添加颜色条和图例等时,有没有一种解决方案也可以工作,即一般情况下?提前感谢您提供的任何帮助。

最佳答案

您的问题是您显示它然后将其保存在 GUI 窗口中。您必须通过定义 dpi 的命令 savefig 保存图像。

像这样:

import matplotlib.pyplot as plt

#First normal figure
fig, axarr = plt.subplots(2,2, figsize=(6,6))
for i,ax in enumerate(axarr.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)
plt.tight_layout()
plt.savefig('myfigure_100.png', dpi=100)
plt.savefig('myfigure_200.png', dpi=200)

如果你想显示它,你可以在脚本的末尾添加plt.show()

编辑

图形大小的dpi与字体大小的关系如下例所示:

import matplotlib.pyplot as plt

#First normal figure
fig1, axarr1 = plt.subplots(2,2, figsize=(6,6), dpi=100)
for i,ax in enumerate(axarr1.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)
plt.tight_layout()

fig2, axarr2 = plt.subplots(2,2, figsize=(12,12), dpi=50)
for i,ax in enumerate(axarr2.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=20)
ax.set_xlabel('x'+str(i), fontsize=20)
ax.set_ylabel('y'+str(i), fontsize=20)
plt.tight_layout()

plt.show()

关于python - 在 matplotlib 中调整图形质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com