matplotlib 中文本的具体字体

matplotlib 中文本的具体字体

我有带标签的 matplotlib 图形,它们以 PDF 形式包含在 LaTeX 文档中。我希望标签文本与文本字体相匹配,这是具体的(通过\usepackage{concrete})。

我可以使用以下方法更改标签中的数学字体

import matplotlib as mpl
mpl.rcParams['text.usetex']=True
mpl.rcParams['text.latex.preamble']=[r'\usepackage{euler}']

但添加\usepackage{concrete}对文本字体没有影响(可能是因为无论如何都使用默认的 Helvetica)。usetex 文档没有提到直接支持的具体内容。

我还cm-unicode安装了 CMU 字体(CMU Concrete)的 opentype 变体,以防万一有用。

答案1

这并不能直接回答您的问题,但也许是一种可行的解决方法:

正如我所提到的将 matplotlib 图表中的字体设置为等于 tex 文档你可以用脚本导出你的情节matplotlib2tikz。这会为您提供一个带有/图形.tex的文件,可将其输入到您的文档中。这将使用与文档相同的字体。TikZpgfplots

编辑: 作为参考,这里简单说明一下安装和使用。

从 github 下载文件后,在命令行中导航到文件夹,然后运行python setup.py install安装matplotlib2tikz

在你的 Python 脚本中添加from matplotlib2tikz import matplotlib2tikz, 并matplotlib2tikz('filename.tex')在你的绘图后添加,例如

from numpy import arange
from matplotlib2tikz import matplotlib2tikz
import matplotlib.pyplot as plt

x = arange(0,10,0.5)

plt.plot(x,x**2)
plt.title("A lovely plot")
plt.ylabel("$y=x^2$")
matplotlib2tikz('test.tex')

您还可以在 Python 脚本中指定绘图的宽度和高度,如的自述文件中所述matplotlib2tikz

相关内容