Измените пределы графика с помощью индекса timedelta64 (нс) - PullRequest
0 голосов
/ 21 марта 2019

У меня действительно сложная функция построения графиков, где я просто хочу перерисовать фигуру с измененными осями X. У меня есть две оси X, но оба ограничения одинаковы, и я хочу изменить оба вместе.

Это не проблема, но индекс моего фрейма данных имеет тип timedelta64[ns], например, например. пределы для моего сюжета варьируются от 0,0 до 1799990000000.0. Я не могу получить связь между этими значениями, они не соответствуют индексу в микросекундах или наносекундах

>>> fig.axes[1].get_xlim()
(0.0, 1799990000000.0)

>>>   df.index

TimedeltaIndex([       '00:00:03', '00:00:03.010000', '00:00:03.020000',
            '00:00:03.030000', '00:00:03.040000', '00:00:03.050000',
            '00:00:03.060000', '00:00:03.070000', '00:00:03.080000',
            '00:00:03.090000',
            ...
            '00:29:59.900000', '00:29:59.910000', '00:29:59.920000',
            '00:29:59.930000', '00:29:59.940000', '00:29:59.950000',
            '00:29:59.960000', '00:29:59.970000', '00:29:59.980000',
            '00:29:59.990000'],
           dtype='timedelta64[ns]', length=179700, freq='10L')

>>> df.index.microseconds
Int64Index([     0,  10000,  20000,  30000,  40000,  50000,  60000,  70000,
         80000,  90000,
        ...
        900000, 910000, 920000, 930000, 940000, 950000, 960000, 970000,
        980000, 990000],
       dtype='int64', length=179700)

Мой вопрос здесь:

Что я могу сделать, чтобы отобразить фигуру с другим диапазоном, например, fix.axes [1] .set_xlim ('00: 05: 23 ', '00: 05: 34').

Имейте в виду, что я не могу просто выделить элементы из кадра данных и переделать график, так как он не единственный, используемый для графика.

Также поможет знание преобразования функции графика панд с timedelta64[ns] в значения по оси X. Первый взгляд на исходный код не мог мне помочь.

Любая помощь очень ценится.


РЕДАКТИРОВАТЬ Это моя (грязная) функция сюжета:

def plotPeaks(peaks_pos, df, y, threshold):
    fig, ax = plt.subplots()
    fig.suptitle('Variance peaks')
    ax.set_ylabel('Calcium level')
    ax = df.plot(y='yvalue', c='r', ax=ax, label='Raw data' )
    ax2 = ax.twinx()
    ax2.set_ylabel('Variance value')
    df.plot(y=y, c='orange', ax=ax2, label='Variance')
    ax2.axhline(y=threshold, label='Threshold')
    df.iloc[peaks_pos].plot(style='.', y=y, c='blue', ax=ax2, label='Peaks')
    return fig

Я хочу изменить ось X возвращаемого рисунка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...