Matplotlib - 在 LateX 表达式中使用变量

Mic*_*cis 6 latex annotate matplotlib

我想使用 LateX 格式构建一个表达式,其中一些数字出现但以 LateX 表达式中的变量表示。

实际的目标是在axes.annotate()方法中使用这个,但是为了讨论,这里是一个原理代码:

import matplotlib.pyplot as plt
import numpy as np 
x = np.arange(-5, 5, 0.05)
fig = plt.plot(x, x**2)
plt.grid(True)
g = 3
plt.xlabel(r'$test {}$'.format(g))
plt.show()
Run Code Online (Sandbox Code Playgroud)

这没问题。的值g被传递给表达式。

但是,使用\frac{}{}和其他构造呢?将xlabel()上面的字符串替换为:

plt.xlabel(r'$test \frac{1}{}$'.format(g))
Run Code Online (Sandbox Code Playgroud)

给出:

IndexError: tuple index out of range
Run Code Online (Sandbox Code Playgroud)

我知道使用花括号会发生一些事情,并尝试了几种变体,但到目前为止没有任何效果。

Aza*_*zad 9

花括号可以通过加倍来转义,但是 format 在替换 g 之后删除了一对(并且 frac 期望它的参数在花括号中)所以你需要三对作为分母

plt.xlabel(r'$test \frac{{1}}{{{}}}$'.format(g))
Run Code Online (Sandbox Code Playgroud)