【发布时间】:2013-05-21 03:50:22
【问题描述】:
我需要生成适合特定宽度并使用特定字体大小的图形,最好不要对 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 pt == 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 获得恰到好处的字体和图形大小的方法?
【问题讨论】:
-
你解决了吗?
-
@tcaswell。一旦我确定什么有效(使用最新版本的 matplotlib),我会立即发布更新或答案。
-
两年后;有解决办法吗?
标签: python matplotlib font-size