无法在 matplotlib 的 tex 上标中从 .format() 打印 10

Can't print a 10 from .format() in superscript in tex in matplotlib

在 matplotlib 中,我使用以下代码创建了一系列图表。 当我绘制它时,从 1 到 9 的计算上标正确呈现,但在 x^10 到 x^12 中,只有 1 在上标中,后面的数字 (0, 1, 2) 与x :

fig, axes = plt.subplots(nrows=2, ncols=6, figsize = (14,4.5))

for i, ax in enumerate(axes.flatten()):
    ax.set_title("$x^{}$".format(i+1))
    ax.plot(x,  x**(i+1))
    
fig.tight_layout();

如何将所有数字都放在上标中?

尝试替换行

    ax.set_title("$x^{}$".format(i+1))

    ax.set_title("$x^{{{}}}$".format(i+1))

Matplotlib 支持在轴标题中使用(某些)LaTeX 表达式。在 LaTeX 中,^ 字符导致下一个字符或组被格式化为上标。在处理x^10时,LaTeX只会将1设置为上标,将0x留在同一行,但在处理x^{10}时会将 10 设置为上标,因为 10 位于大括号 {} 包围的组内。 (如果不这样做,它怎么知道上标什么时候结束?)

.format 遇到 {{}} 时,它们意味着您需要在结果字符串中使用实际的 {} 字符,并且它们不是必须用值填充的占位符的一部分。 "$x^{{{}}}$"中间的{}解释为占位符

你最终得到了三对大括号,因为碰巧 {} 字符对 .format 方法和 LaTeX 都有意义。