Подтвердить что ты не робот

Отображение диапазона Matplotlib yaxis с использованием абсолютных значений, а не значений смещения?

У меня есть следующий диапазон данных numpy (дельта временных меток 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

4b9b3361

Ответ 1

setOffset для False:

ax = plt.gca()
ax.ticklabel_format(useOffset=False)

Ответ 2

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

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

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

Ответ 3

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

matplotlib.rcParams['axes.formatter.useoffset'] = False