gpt4 book ai didi

python - 希腊字母在 matplotlib Latex 输出中以粗体打印

转载 作者:行者123 更新时间:2023-12-01 04:38:30 24 4
gpt4 key购买 nike

我在 matplotlib 中使用 latex 输出来打印轴和图例的希腊符号。 (衬线)文本以正常字体粗细打印,但某些特殊字符以粗体打印。特别是,我指的是表示“微”的 mu,以及表示“Angstrom”的(非希腊语)符号。但是,其他希腊符号(例如 Omega)可以正常打印。我做了一个小例子来演示:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import matplotlib as mpl
import matplotlib.pyplot as plt


mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.unicode'] = True

mpl.rcParams['font.family'] = 'serif'
mpl.rcParams['text.latex.preamble'] = [
r"\usepackage{textgreek}",
r"\usepackage{siunitx}"]


fig = plt.figure()

plt.plot([1, 2, 4], [0, 9, 7])
plt.xlabel(
r"\si{\micro\metre} " +
r"\si{\omega\metre} " +
r"\si{\nano\metre} " +
r"\si{\angstrom} " +
r"\si{\micro\metre}\textmu")
plt.show()

fig.savefig('test.png')
fig.savefig('test.pdf')

我在实时输出、矢量输出和图像输出方面遇到了这个问题。让我感到困惑的是,我在过时的 Ubuntu 机器上工作了一个月,但安装了 python 3.3。现在我尝试在我的个人 Arch 机器上运行该脚本,但遇到了问题。

最佳答案

很抱歉,正如 Achim 提到的,我应该在这里发布我的解决方案。

没什么特别的,只是我的 Arch 上的字体安装有点搞砸了。但我也在文档中使用的 Palatino 字体运行良好,因此我决定在 Pyplot 中也使用它。这是我在 Pyplot 中的标准字体配置的样子:

import matplotlib as mpl

mpl.rcParams['legend.fontsize'] ="large"
mpl.rcParams['axes.labelsize'] = "x-large"
mpl.rcParams['lines.linewidth'] = 2

mpl.rcParams['xtick.labelsize'] = "x-large"
mpl.rcParams['ytick.labelsize'] = "x-large"

mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.unicode'] = True
mpl.rcParams['text.latex.preamble'] = r"\usepackage{textcomp}" + \
r"\usepackage{textgreek}" +\
r"\usepackage{subscript}" +\
r"\usepackage{siunitx}" +\
r'\usepackage{amsmath}' +\
r"\usepackage[osf]{mathpazo}"

mpl.rcParams['font.family'] = "Palatino"

简短的评论:我在 mathpazo 包中使用旧式数字。这对于方程和科学数字不是很有用。如果您还想使用旧式图形,我真的建议您使用 SIunitx 软件包(无论如何我建议它),其中避免使用 osf。

如果您想避免使用 osf 作为独立数字,只需使用\num{123},或与单位\SI{123}{\celsius\per\square\hour} 一起使用

关于python - 希腊字母在 matplotlib Latex 输出中以粗体打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com