无法在 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
设置为上标,将0
与x
留在同一行,但在处理x^{10}
时会将 10
设置为上标,因为 10
位于大括号 {
和 }
包围的组内。 (如果不这样做,它怎么知道上标什么时候结束?)
当 .format
遇到 {{
和 }}
时,它们意味着您需要在结果字符串中使用实际的 {
或 }
字符,并且它们不是必须用值填充的占位符的一部分。 "$x^{{{}}}$"
中间的{}
解释为占位符
你最终得到了三对大括号,因为碰巧 {
和 }
字符对 .format
方法和 LaTeX 都有意义。
在 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
设置为上标,将0
与x
留在同一行,但在处理x^{10}
时会将 10
设置为上标,因为 10
位于大括号 {
和 }
包围的组内。 (如果不这样做,它怎么知道上标什么时候结束?)
当 .format
遇到 {{
和 }}
时,它们意味着您需要在结果字符串中使用实际的 {
或 }
字符,并且它们不是必须用值填充的占位符的一部分。 "$x^{{{}}}$"
中间的{}
解释为占位符
你最终得到了三对大括号,因为碰巧 {
和 }
字符对 .format
方法和 LaTeX 都有意义。