我正在尝试使用matplotlib在保存的图中以罗马字体显示一个简单的希腊字母mu。我尝试了两种方法:
plt.xlabel(u'Wavelength (\u03bc m)')
当我执行
show()
时,此方法可以正常工作,但是当我尝试使用savefig()
时,将mu字符另存为.png时会显示为矩形。如果我另存为.pdf,则该符号将完全丢失。plt.xlabel(r'Wavelength ($\mathrm{\mu}$m)')
此方法使用
show()
和savefig()
呈现希腊字母,但是尽管要求使用罗马字体,但在每种情况下,该字符仍为斜体。诀窍是什么?
最佳答案
我对使用LaTeX排版所有文本(常规和数学)beeing有很好的经验。只需在绘制之前相应地设置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
关于python - Matplotlib希腊符号在show()和savefig()中有所不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26492454/