我正在尝试使用matplotlib在一个已保存的图形中显示一个简单的希腊字母mu以罗马字体显示。我尝试了两种方法:
plt.xlabel(u'Wavelength (\u03bc m)')
当我执行show()
时,此方法正常工作,但当我尝试使用savefig()
时,mu字符在保存为.png时显示为矩形。如果我保存为.pdf,则符号完全丢失。
plt.xlabel(r'Wavelength ($\mathrm{\mu}$m)')
此方法呈现包含show()
和savefig()
的希腊字母,但在每种情况下字符仍为斜体,尽管请求使用罗马字体。
诀窍是什么?
答案 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