在Python中使用pylab(matplotlib),我想为scientifc会议海报制作情节。但是,使用合适的dpi分辨率和正确的英寸/厘米大小,图表的所有元素都太小而无法打印大。对于A0格式的海报,图像大约为30厘米x 20厘米,而对于标准A4页面则不是15厘米×10厘米。
现在我想避免单独研究和调整所有绘图属性,如文本大小(轴,刻度,图例),线宽,刻度尺寸等。基本上我想放大所有属性,好像我已经用标准设置保存了图,但后来放大了整个图像(没有像素化)。
这样的大型平面媒体是不是有预设?或者也许有人可以提供代码片段来设置所有相关属性。
谢谢。
答案 0 :(得分: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等。