我需要生成适合特定宽度并使用特定字体大小的图形,最好不要对 pdf 文件进行后处理。
在我的系统上,默认的 GUI 后端是“TkAgg”,默认字体大小是 12.0,由get_fontsize()
文本对象上的方法报告。当我使用生成图形时
f = pyplot.figure(figsize=(2.0,2.0))
f.text(0.5,0.5,'TEXT')
pyplot.show()
并另存为PDF,图形尺寸太大。pdfinfo
报告
Creator: matplotlib 1.1.1rc, http://matplotlib.sf.net
Producer: matplotlib pdf backend
CreationDate: Sat May 25 10:52:02 2013
Tagged: no
Pages: 1
Encrypted: no
Page size: 196.2 x 153 pts
File size: 9357 bytes
Optimized: no
PDF version: 1.4
196.2磅== 2.725 英寸
但是,如果我将图形调整为 2 英寸宽,则字体大小(在视觉上)与 12pt LaTeX 字体匹配。
相反,跳过 GUI 会生成一个尺寸正确的图形,但字体太大:
import matplotlib
matplotlib.use('PDF')
f = pyplot.figure(figsize=(2.0,2.0))
f.text(0.5,0.5,'TEXT')
f.savefig('test.pdf')
Creator: matplotlib 1.1.1rc, http://matplotlib.sf.net
Producer: matplotlib pdf backend
CreationDate: Sat May 25 10:50:42 2013
Tagged: no
Pages: 1
Encrypted: no
Page size: 144 x 144 pts
File size: 9254 bytes
Optimized: no
PDF version: 1.4
144 磅 == 2.0 英寸
Cairo 后端产生相同的结果。添加f.set_size_inches((2,2))
也不会改变任何东西。
是否有使用 matplotlib 获得恰到好处的字体和图形大小的方法?