Matplotlib: отключить полномочия десяти в лог-сюжете
Есть ли простой способ заставить matplotlib не показывать степени десяти в логарифмическом графике, а просто показывать числа? Т.е. вместо [10^1, 10^2, 10^3]
дисплей [10, 100, 1000]
? Я не хочу менять места для отметок, просто хочу избавиться от полномочий десяти.
Вот что у меня сейчас есть:
Я могу изменить сами ярлыки через xticks
, однако я получаю несоответствующие шрифты или размеры для ярлыков y. Я использую TeX для этого текста. Я пробовал следующее:
xx, locs = xticks()
ll = [r'\rm{%s}' % str(a) for a in xx]
xticks(xx, ll)
Это дает следующий результат:
В этом конкретном случае я мог бы использовать тот же самый латинский шрифт LaTeX, но размеры и внешний вид отличаются от тех, что на оси y. Плюс, если я использовал другой шрифт LaTeX в matplotlib, это будет проблематично.
Существует ли более гибкий способ отключения десятизначной записи?
1 ответ
Использовать ScalarFormatter
:
from matplotlib import rc
rc('text', usetex=True)
rc('font', size=20)
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
ax.semilogx(range(100))
ax.xaxis.set_major_formatter(ScalarFormatter())
plt.show()