Matplotlib希腊符号在show()和savefig()中有所不同

时间:2014-10-21 17:14:47

标签: python matplotlib

我正在尝试使用matplotlib在一个已保存的图形中显示一个简单的希腊字母mu以罗马字体显示。我尝试了两种方法:

  1. plt.xlabel(u'Wavelength (\u03bc m)')
  2. 当我执行show()时,此方法正常工作,但当我尝试使用savefig()时,mu字符在保存为.png时显示为矩形。如果我保存为.pdf,则符号完全丢失。

    1. plt.xlabel(r'Wavelength ($\mathrm{\mu}$m)')
    2. 此方法呈现包含show()savefig()的希腊字母,但在每种情况下字符仍为斜体,尽管请求使用罗马字体。

      诀窍是什么?

1 个答案:

答案 0 :(得分:1)

我对LaTeX排版的所有文本(常规和数学)很有经验。只需在绘图前相应地设置你的rc设置:

import matplotlib.pyplot as plt

plt.rcParams['text.usetex'] = True #Let TeX do the typsetting
plt.rcParams['text.latex.preamble'] = [r'\usepackage{sansmath}',r'\sansmath']
#Force sans-serif math mode
plt.rcParams['font.family'] = 'sans-serif' # ... for regular text
plt.rcParams['font.sans-serif'] = 'Helvetica' # Choose a nice font here

然后你可以简单地说:

plt.xlabel('Wavelength ($\mu$)')

灵感来自我自己的回答: Type 1 fonts with log graphs