注解
Click here 下载完整的示例代码
Latex 文本渲染¶
在matplotlib中使用 Latex 渲染文本。
Matplotlib可以选择使用LaTex来管理所有文本布局。此选项可用于以下后端:
- 自动增益控制
- PS
Latex 选项通过设置激活 text.usetex : True
在RC设置中。Matplotlib的 Latex 支持下的文本处理速度比Matplotlib的超能力慢。 mathtext 但更灵活,因为可以使用不同的 Latex 包(字体包、数学包等)。结果可能是惊人的,尤其是当您注意使用与主文档中相同的字体时。
Matplotlib的 Latex 支架需要工作 LaTeX 安装, dvipng (可能包括在 Latex 装置中),以及 Ghostscript (需要gpl ghostscript 9.0或更高版本)。这些外部依赖项的可执行文件必须全部位于 PATH
.
有几个选项需要提及,可以使用 rc settings . 以下是matplotlibrc文件的示例:
font.family : serif
font.serif : Times, Palatino, New Century Schoolbook, Bookman, Computer Modern Roman
font.sans-serif : Helvetica, Avant Garde, Computer Modern Sans serif
font.cursive : Zapf Chancery
font.monospace : Courier, Computer Modern Typewriter
text.usetex : true
每个族中的第一个有效字体是将要加载的字体。如果未指定字体,则默认使用计算机现代字体。所有其他字体都是Adobe字体。时代和帕拉蒂诺各自都有自己的数学字体,而其他的Adobe serif字体则利用计算机的现代数学字体。见 PSNFSS 有关详细信息的文档。
要使用 Latex 并选择Helvetica作为默认字体,而不编辑matplotlibrc,请使用:
import matplotlib as mpl
plt.rcParams.update({
"text.usetex": True,
"font.family": "sans-serif",
"font.sans-serif": ["Helvetica"]})
## for Palatino and other serif fonts use:
plt.rcParams.update({
"text.usetex": True,
"font.family": "serif",
"font.serif": ["Palatino"],
})
下面是标准示例, /gallery/text_labels_and_annotations/tex_demo
:

特克斯演示¶
注意显示数学模式 ($$ e=mc^2 $$
)不支持,但添加命令 \displaystyle
,将产生相同的结果。
注解
某些字符需要用tex进行特殊转义,例如:
# $ % & ~ _ ^ \ { } \( \) \[ \]
因此,这些角色的行为将因环境而异 rcParams["text.usetex"]
(default: False
) .
带Unicode的UseTex¶
也可以将Unicode字符串与LaTex文本管理器一起使用,下面是一个示例 /gallery/text_labels_and_annotations/tex_demo
. 轴标签包括Unicode文本:

Tex Unicode演示¶
PostScript选项¶
为了生成可嵌入到新的LaTex文档中的封装PostScript文件,Matplotlib的默认行为是提取输出,这会删除LaTex使用的某些PostScript运算符,这些运算符在EPS文件中是非法的。这一步会产生一些用户可能无法接受的结果,因为文本被粗栅格化并转换为位图,而位图不像标准PostScript那样可伸缩,并且文本不可搜索。一个解决方法是 ps.distiller.res
在RC设置中设置为更高的值(可能为6000),这将生成更大的文件,但可能看起来更好并具有合理的缩放比例。更好的解决方案,这需要 Poppler 或 Xpdf, 可以通过更改 ps.usedistiller
RC设置 xpdf
. 这种替代方法生成PostScript而不栅格化文本,因此可以适当缩放,可以在Adobe Illustrator中编辑,并在PDF文档中搜索文本。
可能的宿醉¶
- 在Windows上
PATH
可能需要修改环境变量,以包括包含LaTex、Dvipng和Ghostscript可执行文件的目录。见 环境变量 和 在Windows中设置环境变量 有关详细信息。 - 使用Miktex和电脑现代字体,如果你感到奇怪 * agg和png结果,转到miktex/options并更新格式文件
- 在Ubuntu和Gentoo上,Base-TexLive安装不附带1cm型软件包。您可能需要安装一些额外的软件包,以获得与其他 Latex 分发捆绑在一起的所有商品。
- 已经取得了一些进展,因此matplotlib直接将dvi文件用于文本布局。这使得LaTex可以用于PDF和SVG后端的文本布局,以及 * AGG和PS后端。将来, Latex 安装可能是唯一的外部依赖。
故障排除¶
- 尝试删除您的
.matplotlib/tex.cache
目录。如果你不知道在哪能找到.matplotlib
见 matplotlib 配置和缓存目录位置 . - 确保LaTex、Dvipng和Ghostscript都在工作,并且
PATH
. - 确保您正在尝试的操作在LaTex文档中是可能的,确保您的LaTex语法有效,并且在必要时使用原始字符串以避免意外的转义序列。
- 邮件列表中报告的大多数问题已通过升级清除 Ghostscript. 如果可能,请在向列表报告问题之前尝试升级到最新版本。
- 这个
text.latex.preamble
未正式支持RC设置。这个选项提供了许多灵活性,以及许多导致问题的方法。在向邮件列表报告问题之前,请禁用此选项。 - 如果您仍需要帮助,请参阅 得到帮助
关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery