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

wil*_*dil 9 python string matplotlib python-3.x f-string

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

(要实际看到带有下标的结果,您需要foo在 matplotlib 图上绘制变量)

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

    var = 123
    foo = r'text$_{%s}$' % var
    text<sub>123</sub>
Run Code Online (Sandbox Code Playgroud)

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

    var = 123
    foo = fr'text$_{var}$'
    text<sub>1</sub>23
Run Code Online (Sandbox Code Playgroud)

因为 the{有一个不明确的功能,作为分隔r应该考虑的下标和分隔f变量的地方。

CDJ*_*DJB 13

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

foo = f'text$_{{{var}}}$'
Run Code Online (Sandbox Code Playgroud)

例子:

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

输出:

在此处输入图片说明

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