matplotlib 上的 latex-markdown 标签

latex-markdown labels on matplotlib

我有一张 matplotlib 图表,我想用 latex markdown 进行注释。

axs.annotate(s='$r_f = {:.2f}$'.format(r), xy=[2005, 7],
             xycoords="data", fontsize=18)

这很好用,但我想要下标中有一个以上字母的乳胶代码。 我需要 $r_{fit}$,但这混淆了 python 格式方法的内部系统。

c:\Users\Dean\Dropbox\Dean\Study\_Thesis. Paper\code\paper\charts.py in plot_prediction(x, y, data, future_x, future_y, future_data, death)
    141         axs.scatter(x, data, label='Train Data', color=_palette[0])
    142         r, p = pearsonr(y, data)
--> 143         axs.annotate(s=r'$r_{fit} = {:.2f}$'.format(r), xy=[2005, 7],
    144                      xycoords="data", fontsize=18)
    145         # print p

KeyError: 'fit'

我尝试了很多带有转义字符的选项,但没有任何效果。

问题出在 format/string 而不是 matplotlib,我收到错误

"$r_{fit} = {:.2f}$".format(10.)

 KeyError                                  Traceback (most recent call      last)
<ipython-input-41-2d336f9a0477> in <module>()
----> 1 "$r_{fit} = {:.2f}$".format(10.)

KeyError: 'fit'

问题已在 answer 中解决,他们使用双括号,

"$r_{{fit}} = {:.2f}$".format(r)

另一种简单的解决方法是拆分下标和格式语句,

"$r_{fit}" + " = {:.2f}$".format(r)

这也按预期工作。