如何在 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}}}$')
输出:
顺便说一句,在此示例中,您实际上不需要使用原始字符串文字。
在 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}}}$')
输出:
顺便说一句,在此示例中,您实际上不需要使用原始字符串文字。