Python字符串格式化指数输出

时间:2018-06-26 15:21:47

标签: python string output string-formatting exponential

我正在尝试更改指数字符串格式的输出。我已经为某些数据拟合了一条曲线,并希望将其写入绘图中。问题是,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看起来不太适合发布,这就是为什么我想更改电子格式化程序的输出,所以它给\ cdot 10 ^ {- 7}(对于LaTeX为\ cdot {})。

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

符号^使后面的char成为上标(x$^5$将x赋予5的幂),而_用于下标(x$_5$将x带给您索引5)