【问题标题】:Python string formatting exponential outputPython字符串格式化指数输出
【发布时间】:2018-06-26 15:21:46
【问题描述】:

我正在尝试更改指数字符串格式的输出。我已经为一些数据拟合了一条曲线,并希望将它们写入图中。问题是,x e-y 格式看起来不太好,是否有可能将其更改为 x * 10^-y?

这是我正在使用的代码示例:

plt.plot(x, y, 'x', label = '$f(t) = {a:.0f} \cdot x + {b:.2e}$'.format(a = para[0], b = para[1]) 

a 是大于 10000 的数字,这就是为什么不需要十进制数,但 b 大约是 10^-7。将其写为浮点数会浪费前导 0 的空间,但 e^-7 看起来不适合发布,这就是为什么我想更改 e-formatter 的输出,所以它给出了 \cdot 10^{- 7}(LaTeX 的 \cdot {})返回。

谢谢

【问题讨论】:

标签: python string output string-formatting exponential


【解决方案1】:

我建议您编写一个临时函数来格式化您想要的输出中的数字,如下所示:

import numpy as np

def myformat(x):
    myexp = np.floor(np.log10(x))

    xout = x*10**(-myexp)

    strout = "{:.2f} \times 10^{}".format(xout, myexp)

    return strout

【讨论】:

    【解决方案2】:

    所有需要以LaTex格式格式化的,必须用$符号包裹:

    label='$f(t)$ = $x$ $\cdot$10$^-$$^7$'
    

    Sign ^ 使后面的 char 成为上标(x$^5$ 将 x 为 5 的幂)并且_ 用于下标(x$_5$ 将给您 x 索引为 5)

    【讨论】:

      猜你喜欢
      • 2012-03-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 2019-11-28
      • 2011-07-28
      相关资源
      最近更新 更多