1

我正在做一个历史图,我想在图中显示一些数字,所以我在一个使用 mathtext 的文本框中输入了文本,但我不工作,我不明白为什么。

a = [2086., 360.5, 1000.]

b = [977., 37., 498.]

c = [4512., 690., 378.]


textstr = r'$\per50=%.2f$\n$\per16=%.2f$\n$\per84=%.2f$'%(a[0],b[0],c[0])

    # these are matplotlib.patch.Patch properties
    props = dict(boxstyle='round', facecolor='wheat', alpha=0.75)

    # place a text box in upper left in axes coords
    ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14,
            verticalalignment='top', bbox=props)

在我的图结束时,我收到了这个错误:

matplotlib.pyparsing.ParseFatalException: Expected end of math '$'
$\per50=2086.00$\n$\per16=977.00$\n$\per84=4512.00$ (at char 0), (line:1, col:1)

我希望你能帮帮我!

4

1 回答 1

3

您收到该错误是因为该命令$\per$不存在。那是您定义的乳胶命令吗?如果您设置 matplotlib 参数text.usetex=True,则可以设置乳胶前导码并在那里定义命令,例如:

rc('text', usetex=True)
rc('text.latex', preamble='something')

但我认为这不能用于定义新命令(并且不鼓励使用前导码)。所以你最好的选择是在 matplotlib 中明确地写出任何\per代表什么。

于 2012-12-21T12:42:21.280 回答