如何为从matplotlib导出的PDF设置正确的图形大小和字体大小? [英] How to get figure size and fontsize right for PDFs exported from matplotlib?

查看:0
本文介绍了如何为从matplotlib导出的PDF设置正确的图形大小和字体大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要生成适合特定宽度和使用特定字体大小的图形,最好不对pdf文件进行后处理。

在我的系统上,默认的图形用户界面后端是‘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.2pt==2.725英寸

但是,如果我将图形调整为2英寸宽,则字体大小与12pt LaTeX字体(视觉上)匹配。

相反,跳过图形用户界面会产生尺寸正确但字体太大的图形:

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 pt==2.0英寸

cairo后端产生相同的结果。添加f.set_size_inches((2,2))也不会更改任何内容。

有没有办法让matplotlib的字体和字号恰到好处?

推荐答案

检查您的.matplotlibrc并查找sivefig.bbox,确保将其注释掉,或者设置为而不是tight

您可以尝试:

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

它显式设置边界框。

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

这篇关于如何为从matplotlib导出的PDF设置正确的图形大小和字体大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆