You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用原始字符串为变量设置上标的问题

Python中使用原始字符串为变量设置上标的问题

嘿,这个问题我之前也踩过坑!核心原因是你没摸透Matplotlib里LaTeX格式的上标规则——当你的上标包含多个字符(比如负号加数字)时,必须用大括号{}把整个上标内容包裹起来,不然LaTeX只会把第一个字符当成上标,剩下的就变成普通文本了。

看你原来代码里的这行:

pyplot.plot(x1, x2, label=fr"x$^{-x}$")

LaTeX解析的时候,只会把-识别成上标,后面的数字(比如2、3)会被当成正常文本放在旁边,这就是为啥你看到负号在上标,数字却不在的原因。

给你个简单的解决办法,只需要修改图例的字符串就行:把整个上标内容用双大括号{{}}包裹(因为Python的f-string里单个大括号有特殊含义,需要转义)。修改后的完整代码如下:

import numpy
import matplotlib.pyplot as plt

s = [2, 3, 4, 5]

for count, x in enumerate(s):
    x1 = numpy.linspace(0, 2)
    # 第一个图例也建议用大括号包裹,写法更规范
    x2 = x1**x
    plt.plot(x1, x2, label=fr"$x^{{{x}}}$")
    
    # 关键修改:用{{}}把整个-x包裹起来,让LaTeX识别为完整上标
    x2 = x1**(-x)
    plt.plot(x1, x2, label=fr"$x^{{{-x}}}$")

plt.xlim(-0.1, 2)
plt.ylim(-0.1, 3)
plt.legend()
plt.show()

解释下这个修改:fr"$x^{{{-x}}}$" 经过f-string解析后,会变成$x^{-2}$(当x=2时),LaTeX就能正确把-2整个当成上标显示了。

你运行这个修改后的代码,就能看到图例里的x^{-2}、x^{-3}等都完整显示成你想要的上标效果啦!

备注:内容来源于stack exchange,提问作者Overflowed with Maths

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:17:39