背景:这是产生错误的最小工作示例:
from matplotlib import pyplot as plt
plt.plot([0,1,2],[0,1,2],label=r"$\alpha$")
plt.plot([0,1,2],[0,1,2],label=r"$\overline{a}$") #This is the offending line
plt.legend(loc='best')
plt.show()
运行此命令会在相当长的Traceback
列表后生成以下错误消息:
pyparsing.ParseFatalException: Expected end of math '$'
$\overline{a}$ (at char 0), (line:1, col:1)
我也收到了这个警告,我不确定是否与我的问题有关,因为无论我是否在我的剧本中包含“违规行”,都会发生这样的警告:
/usr/lib64/python2.6/site-packages/matplotlib/font_manager.py:1242: UserWarning: findfont: Font family ['cmb10'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
/usr/lib64/python2.6/site-packages/matplotlib/font_manager.py:1252: UserWarning: findfont: Could not match :family=Bitstream Vera Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=12. Returning /usr/share/fonts/un-core/UnDotum.ttf UserWarning)
/usr/lib64/python2.6/site-packages/matplotlib/font_manager.py:1242: UserWarning: findfont: Font family ['cmtt10'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
/usr/lib64/python2.6/site-packages/matplotlib/font_manager.py:1242: UserWarning: findfont: Font family ['cmss10'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
如果我没有包含“违规行”,因为我已经指定它在上面,那么一切正常。我尝试过各种未在此处显示的内容,这些内容使我得出结论,问题的核心是\overline{}
。但是,我不知道为什么它不起作用,因为documentation说\overline{}
一旦被置于$$
之内就应该有效。
以前我使用plt.rc('text',usetex=True)
来解决这个问题,但现在我正在研究我计划包含在出版物中的图表,我正在努力微调字体大小和样式以获得最佳可读性并使用{{ 1}}强制我的刻度标签使用默认的LaTeX字体而不是我想要使用的字体。
Python版本:2.6.6
答案 0 :(得分:1)
我尝试了你的代码片段,它似乎对我有用。
这是你想要完成的吗?
python版本:2.7
matplotlib版本:1.3.1。