我使用pgf
中的matplotlib 1.5.3
后端来制作出版品质的数字。以下是我设置绘图脚本的方法。
import matplotlib as mpl
mpl.use('pgf')
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
"font.family": "sans-serif",
"font.sans-serif": "Bitstream Vera Sans, Helvetica, Computer Modern Sans Serif",
"pgf.preamble": [
r"\usepackage[utf8x]{inputenc}", # use utf8 fonts because your computer can handle it :)
r"\usepackage[T1]{fontenc}", # plots will be generated using this preamble
r"\usepackage{textcomp}",
r"\usepackage{sfmath}", # sets math in sans-serif
]
}
mpl.rcParams.update(pgf_with_latex)
import matplotlib.pyplot as plt
def newfig():
plt.clf()
fig = plt.figure(figsize=(4, 2))
ax = fig.add_subplot(111)
return fig, ax
fig, ax = newfig()
ax.set_xlabel("Some x-label text")
plt.gcf().tight_layout()
plt.savefig(os.getcwd() + "/test.pdf")
plt.savefig(os.getcwd() + "/test.eps")
我正在使用包sfmath
来设置sans-serif
中的所有数学环境。最后,我以.pdf
和.eps
格式保存。问题在于:pdf
在任何地方都明确使用sans-serif
字体,eps
文件对所有刻度标签使用serif
(而不是轴标签)!当我修改我的LaTeX模板以使用sfmath
时,它不会更改刻度标签。
如何阻止eps
在刻度标签中使用serif
字体?
编辑经过一天的实验,我发现唯一(几乎)令人满意的解决方案是使用.tiff
作为格式,因为期刊也允许这样做。 eps
似乎有问题,并且总是与pdf
或其他图片格式不同。