Верхний индекс в графиках Python

Я хочу пометить свою ось x следующим образом:

pylab.xlabel('metres 10^1')

Но я не хочу включать символ ^.

pylab.xlabel('metres 10$^{one}$')

Этот метод работает и будет писать надстрочные буквы, но, похоже, не работает для чисел. Если я попробую:

pylab.xlabel('metres 10$^1$')

По какой-то причине он переписывает букву N.

Кто-нибудь знает, как надстрочные числа на графиках python? спасибо.

Ответ 1

Вам просто нужно иметь полное выражение внутри $. В принципе вам нужно "meters $10^1$". Для этого вам не нужно usetex=True (или большинство математических формул).

Вы также можете использовать необработанную строку (например, r"\t", vs "\t"), чтобы избежать проблем с такими вещами, как \n, \a, \b, \t, \f и т.д..

Например:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set(title=r'This is an expression $e^{\sin(\omega\phi)}$',
       xlabel='meters $10^1$', ylabel=r'Hertz $(\frac{1}{s})$')
plt.show()

enter image description here

Если вы не хотите, чтобы надстрочный текст находился в другом шрифте, чем остальная часть текста, используйте \mathregular (или эквивалентно \mathdefault). Некоторые символы будут недоступны, но большинство будет. Это особенно полезно для простых надстрочных индексов, таких как ваш, где вы хотите, чтобы выражение смешалось с остальной частью текста.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set(title=r'This is an expression $\mathregular{e^{\sin(\omega\phi)}}$',
       xlabel='meters $\mathregular{10^1}$',
       ylabel=r'Hertz $\mathregular{(\frac{1}{s})}$')
plt.show()

enter image description here

Для получения дополнительной информации (и общего обзора matplotlib "mathtext" ), см. http://matplotlib.org/users/mathtext.html