【问题标题】:How to get figure size and fontsize right for PDFs exported from matplotlib?如何为从 matplotlib 导出的 PDF 获取正确的图形大小和字体大小?
【发布时间】: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


【解决方案1】:

检查您的.matplotlibrc 并查找sivefig.bbox,确保它已被注释掉,或设置为不是 tight 的内容。

你可以试试:

fig.savefig('so.png', bbox_inches=matplotlib.transforms.Bbox(np.array(((0, 0), (2, 2)))))

明确设置边界框。

也就是说,如果您的 .matplotlibrc 中没有任何内容,您应该将此报告为错误。

【讨论】:

  • 嗯,也许这是一个错误。我正在使用 matplotlib 1.1.1-rc1,这是适用于 Ubuntu Precise 12.04 LTS 的最新版本。谢谢。
【解决方案2】:

您应该使用 fig.set_size_inches,因为您可以准确地给出 pdf 的物理尺寸。

【讨论】:

  • 并确保使用tight边界框。
  • 这没有帮助。我相应地改变了我的问题。
  • @tcaswell 我没有明确设置“紧密”边界框。如果这应该是问题所在,我该如何避免紧密的边界框?
猜你喜欢
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 2012-01-13
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
相关资源
最近更新 更多