У меня действительно сложная функция построения графиков, где я просто хочу перерисовать фигуру с измененными осями 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 возвращаемого рисунка.