Экспоненциальный вывод форматирования строки Python - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь изменить вывод экспоненциального форматирования строки. Я привел кривую к некоторым данным и хотел бы записать их в график. Проблема в том, что формат 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. Запись его в виде числа с плавающей запятой приводит к потере пробелов для ведущих нулей, но e ^ -7 не очень подходит для публикации, поэтому я хотел бы изменить вывод электронного форматера, поэтому он дает \ cdot 10 ^ {- 7} (\ cdot {} для LaTeX) назад.

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Все, что нужно отформатировать в стиле LaTex, должно быть обернуто знаком $:

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

Знак ^ делает последующий символ как верхний индекс (x$^5$ даст x в степени 5), а _ использует для индекса (x$_5$ даст вам x с индексом 5)

0 голосов
/ 26 июня 2018

Я бы предложил вам написать специальную функцию для форматирования числа в выводе, который вы хотите, что-то вроде этого:

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
...