Форматирование математического текста в аннотации к matplotlib

Я пытаюсь написать текст в своем сюжете с некоторыми math текст как

После получения много ошибок, таких как

>>> plt.annotate(r'$\log_{10}M_{200}={:.2f}$'.format(xc), xy=(0.9, 0.95), xycoords='axes fraction', size=18, color='blue')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>

IndexError: tuple index out of range

Но все же со следующей строкой я не смог получить то, что хочу

import pylab as plt
xc=0.24
plt.annotate(r'$\log_{:.2}M_{:.3}={:.2f}$'.format('10','200',xc), xy=(0.8, 0.95), xycoords='axes fraction', size=15, color='blue') 

любое предложение?

1 ответ

Решение

Часть вашего второго решения, связанная с форматированием, прекрасно работает для меня, но, возможно, вам будет проще избежать форматирования, заключив числа в двойные фигурные скобки:

r'$\log_{{10}}M_{{200}}={:.2f}$'.format(xc)

Например, xc = 5, это выводы

$\log_{10}M_{200}=5.00$
Другие вопросы по тегам