会议海报绘图(一次性增大字体、线宽等)
我在用Python的pylab(matplotlib)做科学会议海报的图表。但是,当我设置合适的dpi分辨率和正确的尺寸(厘米或英寸)时,图表里的所有元素都显得太小,无法打印得很大。我的海报大约是30厘米 x 20厘米,适合A0格式,而不是标准A4纸的15厘米 x 10厘米。
我希望能避免逐个调整图表的所有属性,比如文字大小(坐标轴、刻度、图例)、线条宽度、刻度大小等等。基本上,我想把所有属性都放大,就像我用标准设置保存图表后,再把整个图像放大一样(而不会变得模糊)。
难道没有适合大幅面打印的预设吗?或者有没有人能提供一段代码,来设置所有相关的属性。
谢谢。
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之类的格式。