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

如何在Matplotlib中绘制以10的幂为指数的科学标注字符串?

Matplotlib实现$e^{x \times 10^b}$格式科学计数法标注

问题原因

直接用%.2e格式化数值会得到5.55e+10这类普通文本,Matplotlib的LaTeX渲染引擎不会自动将e后的部分识别为嵌套上标,因此无法生成目标格式。

实现方案

需要先将数值拆分为「系数」和「10的幂次」两部分,再按照LaTeX语法拼接公式字符串,核心是用\times表示乘号,用多层{}明确上标的嵌套层级。

方法1:无额外依赖,字符串拆分实现

import matplotlib.pyplot as plt

data = 5.55e10

# 拆分系数和指数部分
coeff, exp = f"{data:.2e}".split("e")
# 处理指数:转int自动去掉前导+号和无效前导0
exp = int(exp)

# 拼接LaTeX格式标题
plt.title(f"e$^{{{coeff} \\times 10^{{{exp}}}}}$")
plt.show()

方法2:数值计算拆分(适合批量处理场景)

import matplotlib.pyplot as plt
import numpy as np

data = 5.55e10

# 数值计算得到指数和系数
exp = int(np.floor(np.log10(abs(data))))
coeff = data / (10 ** exp)

plt.title(f"e$^{{{coeff:.2f} \\times 10^{{{exp}}}}}$")
plt.show()

效果对比

  • 原有代码输出:
    实际输出
  • 调整后输出(与期望效果一致):
    期望输出

内容的提问来源于stack exchange,提问作者zxdawn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:57:36