繁体   English   中英

matplotlib乳胶输出中希腊字母以粗体显示

[英]Greek letters are printed bold in matplotlib latex output

我在matplotlib中使用乳胶输出来为轴和图例打印希腊符号。 (粗体)文本以常规字体粗细打印,但是某些特殊字符以粗体打印。 特别地,我的意思是微的亩,但也表示埃的(非希腊)符号。 但是,其他希腊符号如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机器上运行脚本,然后得到了问题。

您所安装的字体似乎有问题,就我而言,我可以通过以下命令指定要使用的字体来解决此问题:

mpl.rcParams['font.serif'] = 'Times'

可在此处找到可用字体的列表: http : //matplotlib.org/users/customizing.html

很抱歉,正如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}一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM