首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Matplotlib的PdfPages会将标签打印为方框(字体编码)?

为什么Matplotlib的PdfPages会将标签打印为方框(字体编码)?
EN

Stack Overflow用户
提问于 2017-11-17 16:55:04
回答 1查看 265关注 0票数 3

当我运行修改后的Matplotlib's multi page example版本,并在标题中添加一个选项卡时,我得到以下输出:

这是我的工作示例。代码上面的注释是我在hereNon-ASCII characters in Matplotlib中找到的建议,但到目前为止还没有成功。

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import matplotlib
from matplotlib.backends.backend_pdf import PdfPages
from pylab import *

#matplotlib.rc('font', family='DejaVu Sans')

#matplotlib.rc('font', **{'sans-serif' : 'Arial',
#                           'family' : 'sans-serif'})

#matplotlib.rcParams['pdf.fonttype'] = 42
#matplotlib.rcParams['ps.fonttype'] = 42

pdf = PdfPages('multipage_pdf.pdf')

figure(figsize=(3,3))
plot(range(7), [3,1,4,1,5,9,2], 'r-o')
title('Page\tOne')
savefig(pdf, format='pdf') # note the format='pdf' argument!
close()

pdf.close()

有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-17 18:33:33

解决方案是添加

代码语言:javascript
复制
matplotlib.rcParams['ps.useafm'] = True
matplotlib.rcParams['pdf.use14corefonts'] = True
matplotlib.rcParams['text.usetex'] = True

如前所述,herehere

我找不到哪一行行有魔力,在我的例子中似乎并不需要所有行,但我只是添加了所有行。如果tex抱怨无法对某些内容进行编码时出现问题,您可以在['text.usetex']仍在工作的情况下对其进行评论。

来自matplotlib文档:

在您的配置文件中添加"pdf.use14corefonts: True“,以便只使用14种核心字体。这些字体不需要嵌入;每个PDF查看应用程序都需要嵌入这些字体。这导致了非常轻的PDF文件,您可以直接在LaTeX或用pdfTeX生成的ConTeXt文档中使用,而不需要任何转换。

这些字体是: Helvetica、Helvetica-Bold、Helvetica-斜体、Helvetica-BoldOblique、Courier、Courier-Bold、Courier-斜体、Courier-BoldOblique、Times-Roman、Times-Bold、Times-斜体、Symbol、ZapfDingbats。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47346635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档