Отображение диапазона yaxis Matplotlib с использованием абсолютных значений, а не значений смещения? - PullRequest
27 голосов
/ 16 февраля 2012

У меня есть следующий диапазон пустых данных (дельта меток времени usec):

array([ 4.312,  4.317,  4.316,  4.32 ,  4.316,  4.316,  4.319,  4.317,
    4.317,  4.316,  4.318,  4.316,  4.318,  4.316,  4.318,  4.317,
    4.317,  4.317,  4.316,  4.317,  4.318,  4.316,  4.318,  4.316,
    4.318,  4.316,  4.317,  4.317,  4.318,  4.316,  4.317,  4.317,
    4.317,  4.317,  4.317,  4.316,  4.319,  4.315,  4.319,  4.315,
    4.319,  4.315,  4.316,  4.319,  4.317,  4.317,  4.317,  4.318,
    4.315,  4.317,  4.317,  4.317,  4.319,  4.314,  4.32 ,  4.315,
    4.317,  4.318,  4.315,  4.318,  4.317,  4.317,  4.317,  4.316,
    4.317,  4.318,  4.317,  4.317,  4.317,  4.315,  4.319,  4.317,
    4.315,  4.319,  4.316,  4.318,  4.318,  4.315,  4.318,  4.317,
    4.317,  4.321])

Когда я строю график с помощью matplotlib.pyplot:

 import matplotlib.pyplot as plt
 plt.plot( deltas ) 
 plt.show()

Я получаю следующий сюжет. Почему ось Y масштабируется таким образом? Как я могу сделать так, чтобы ось Y была помечена как данные, а не как смещение данных? Иногда график представляет собой «+ 4.nnn», иногда это не так (в зависимости от диапазона данных?).

Сюжет "странно":
Plotted Badly

График "правильно":
Plotted Correctly

Ответы [ 3 ]

40 голосов
/ 16 февраля 2012

установите для useOffset значение False:

ax = plt.gca()
ax.ticklabel_format(useOffset=False)
9 голосов
/ 16 февраля 2012

Вы также можете использовать

ax = plt.gca()
ax.set_yticklabels(ax.get_yticks())

Хотя мне больше нравится ответ @ HYRY.

6 голосов
/ 24 июля 2017

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

matplotlib.rcParams['axes.formatter.useoffset'] = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...