вывести математическое выражение в python - PullRequest
1 голос
/ 19 июня 2020

У меня проблема с написанием названия для моего сюжета. Существует l oop, который генерирует N графиков, и каждый график должен иметь определенный c заголовок. Например, в одном из циклов title - 100 ^ {2.4} _ {5.6}. У меня есть следующий код, но он помещает только первое di git верхнего / нижнего значения.

a=[100,200,300]
b=[2.4,3.5,6.7]
c=[5.6,1.3,4.2]
for i in plots:

    plt.title(r"${}^{}_{}$".format(a[i],b[i],c[i]))

Что в этом примере a [1] = 100, b [1] = 2.4, c [ 1] = 5,6. Этот код выводит 100 ^ {2} .4_ {5} .6 !!!

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

То, что вы хотите, можно сделать, используя формат строк f как:

a = [100, 2.4, 5.6]
plt.title(f"${a[0]}^{ {a[1]} }_{ {a[2]} }$")
# Text(0.5, 1.0, '$100^{2.4}_{5.6}$')

В этом примере я взял гипотетический список a, но, очевидно, он работает для любого числа вы используете.

1 голос
/ 19 июня 2020

{} из .format мешает {} из LaTeX.

Используя старое форматирование, вы получите ожидаемый результат:

plt.title(r"$%d^{%.1f}_{%.1f}$" %(a[i], b[i], c[i]))

В основном такие вещи, как "$x_12$" создайте что-то похожее на "$x_1 2$", поэтому вам нужно использовать скобки для любого подстрочного / надстрочного индекса, в котором используется более одного символа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...