2

在 Python 中使用 pylab (matplotlib),我想为科学会议海报制作绘图。但是,使用合适的 dpi 分辨率和以英寸/厘米为单位的正确尺寸,绘图的所有元素都太小而无法打印大。A0 格式海报的图像大约为 30 厘米 x 20 厘米,而不是标准 A4 页面的 15 厘米 x 10 厘米。

现在我想避免单独研究和调整所有绘图属性,如文本大小(轴、刻度、图例)、线宽、刻度大小等。基本上我想放大所有属性,就好像我用标准设置保存了绘图但后来放大了整个图像(没有像素化)。

像这样的大型印刷媒体没有预设吗?或者也许有人可以提供一个代码片段来设置所有相关属性。

谢谢你。

4

1 回答 1

1

如果您将图形保存为 pdf(或 svg 或任何其他矢量图形格式),那么它将无限缩放而没有任何“像素化”,因为矢量图形没有像素。

假设您不想为了比例(而不是图像分辨率)而更改相对字体大小,它很简单:

plt.savefig('figures/figname.pdf')

如果您想一步更改字体的整体比例,您可以使用figsize,它会更改图形的大小,而不会更改其任何部分(文本、标记、线宽)的大小。

plt.figure(figsize=(8,6)) # (width, height)

或者,如果您已经创建了图形并对其进行了处理:

fig.set_figwidth(8)
fig.set_figheight(6)

因此,如果您将其figsize放大,则实际上您将所有图形元素都缩小了(假设您的最终图形在海报上具有固定尺寸)。要增加所有字体/标记/线条大小,只需将您的字体figsize变小即可。

请注意,pdf 或 svg 的可扩展性取决于您用来使海报与矢量图形很好地配合使用的程序的兼容性(无论如何这都是您想要的),因此请确保不要导入图像作为jpg或png之类的。

于 2014-03-13T17:37:37.497 回答