要在 Python 的 matplotlib 包中用希腊字母注释我的数字,我使用以下内容:

import matplotlib
matplotlib.use('PDF')
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['pdf.fonttype'] = 42
# plot figure
# ...
# annotate figure
plt.xlabel(r'$\mu$ = 50')
plt.ylabel(r'$\sigma$ = 1.5')

这使得 Helvetica 字体中的相等符号及其右侧的所有内容都按预期使用,而希腊符号默认为通常的 TeX 字体(我认为是 Times New Roman。)

我怎样才能使用于希腊字母的字体改为“符号”字体?重要的是不要让它出现在 TeX 的默认 Times 字体中。

谢谢你的帮助。

最佳答案

有趣的是你应该问这个;不久前我一直在努力解决类似的问题。考虑到 TeX 中字体处理的复杂程度,我完全回避了 TeX。

但是,任何体面的 Helvetica 都内置了希腊字母,因此您无需使用 Symbol 字体。只需将一些 Unicode 代码点放入您的字符串中,如下所示:

plt.xlabel(u'\u03bc = 50')
plt.ylabel(u'\u03c3 = 1.5')

为了找到代码点,这个 Unicode codepoint lookup/search tool 真的很方便。

我不确定 matplotlib 是否以及如何处理 Unicode 字符串。如果上述操作失败,请使用 matplotlib 期望的某种编码进行编码。

(如果你真的坚持使用Symbol:我不认为你可以在同一个标​​签中使用多种字体,所以你必须添加多个标签并编写一些代码来使它们相互对齐。它不漂亮,但是可以办到。)

10-07 13:28
查看更多