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()

Другие вопросы по тегам