【发布时间】:2015-09-28 05:51:29
【问题描述】:
我已经编写了一些代码来在 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(),子图轴的重叠也更糟。显然,这在尝试制作更高质量的人物时没有帮助。这是怎么回事,我怎样才能改变图形质量并保持图形外观不变?当我调整子图参数、添加颜色条和图例等(即一般情况下)时,是否有一种解决方案也可以工作?提前感谢您提供的任何帮助。
【问题讨论】:
标签: python matplotlib