如何在 matplotlib 中显示 LaTeX f 字符串

How to display LaTeX f-strings in matplotlib

在 Python 3.6 中,有新的 f 字符串可以在字符串中包含变量,这很棒,但是如何正确应用这些字符串来为 matplotlib 打印上标或下标?

(要真正看到带下标的结果,需要在matplotlib图上绘制变量foo

换句话说,我如何获得这种行为:

    var = 123
    foo = r'text$_{%s}$' % var
    text<sub>123</sub>

使用新的 f 字符串语法?到目前为止,我已经尝试将原始字符串文字与 f 字符串结合使用,但这似乎只将下标应用于变量的第一个字符:

    var = 123
    foo = fr'text$_{var}$'
    text<sub>1</sub>23

因为 { 有一个模糊的功能,即分隔 r 应该考虑下标的内容和 f 分隔作为变量位置的内容。

您需要通过将大括号加倍来转义大括号,然后再添加一个以在 LaTeX 公式中使用。这给出:

foo = f'text$_{{{var}}}$'

示例:

plt.figure()
plt.plot([1,2,3], [3,4,5])
var = 123
plt.text(1, 4,f'text$_{{{var}}}$')

输出:

顺便说一句,在此示例中,您实际上不需要使用原始字符串文字。