我正在尝试使用matplotlib在一个已保存的图中以罗马字体显示一个简单的希腊字母mu.我尝试了两种方法:
plt.xlabel(u'Wavelength (\u03bc m)')当我这样做时,此方法可以正常工作show(),但是当我尝试使用时savefig(),mu字符在保存为.png时显示为矩形.如果我保存为.pdf,则符号完全丢失.
plt.xlabel(r'Wavelength ($\mathrm{\mu}$m)')这种方法使得同时具有希腊字母show()和savefig(),但性格仍是在每种情况下斜体尽管请求罗马字体.
有什么诀窍?
我在使用 LaTeX 排版所有文本(常规文本和数学文本)方面拥有非常丰富的经验。只需在绘图之前相应地设置你的 rc-settings 即可:
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
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地说:
plt.xlabel('Wavelength ($\mu$)')
Run Code Online (Sandbox Code Playgroud)
受到我自己的答案的启发: Type 1 fonts with log graphs