Matplotlib отключить экспоненту в полулогических сюжетах
Допустим, у меня есть следующий код
import matplotlib.pyplot as plt
plt.figure()
plt.semilogy([0,1],[20,90])
plt.show()
который создает следующий рисунок:
Я хотел бы отключить научную запись на оси Y (поэтому я хотел бы иметь 20, 30, 40, 60 вместо 2x10^1 и т. Д.)
Я уже посмотрел эту тему, и я попытался добавить
import matplotlib.ticker
plt.gca().get_yaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
plt.gca().get_yaxis().get_major_formatter().set_useOffset(False)
но это не влияет на итоговую цифру. Я использую Python 3.5.3 и Matplotlib 2.1.0. Что мне не хватает?
1 ответ
Решение
Поскольку отметки по оси y находятся менее чем за десятилетие, они являются мелкими отметками, а не значительными отметками. Следовательно, вам нужно установить дополнительный форматер в ScalarFormatter
,
plt.gca (). yaxis.set_minor_formatter (matplotlib.ticker.ScalarFormatter ())
Полный пример:
import matplotlib.pyplot as plt
import matplotlib.ticker
plt.figure()
plt.semilogy([0,1],[20,90])
plt.gca().yaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()