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

这是我的工作示例。代码上面的注释是我在here和Non-ASCII characters in Matplotlib中找到的建议,但到目前为止还没有成功。
# -*- 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()有什么办法可以解决这个问题吗?
发布于 2017-11-17 18:33:33
解决方案是添加
matplotlib.rcParams['ps.useafm'] = True
matplotlib.rcParams['pdf.use14corefonts'] = True
matplotlib.rcParams['text.usetex'] = True如前所述,here和here。
我找不到哪一行行有魔力,在我的例子中似乎并不需要所有行,但我只是添加了所有行。如果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。
https://stackoverflow.com/questions/47346635
复制相似问题