#python #matplotlib #plot #pandas
#python #matplotlib #построить #pandas
Вопрос:
У меня есть фрейм данных Pandas в следующем формате:
Ozone CellT CellP FlowRate
Date/Time
10/06/14 15:49:57 40.4 32.6 978.6 2297
10/06/14 15:54:57 44.0 32.7 978.6 2267
10/06/14 15:59:57 44.7 32.8 978.6 2249
10/06/14 16:04:57 45.0 32.9 978.6 2262
10/06/14 16:09:57 45.0 32.9 978.6 2286
Я хочу построить его как среднее значение за час чтения озона по сравнению с меткой времени с наложением плюс / минус стандартного отклонения.
Когда я в настоящее время показываю текущее значение ozone, ось x (временная метка) имеет произвольную временную метку, такую как «06.10.14 15:49:57». Я бы хотел, чтобы каждая отметка по оси x отмечалась в разные дни в 12:00:00.
Как мне продолжить построение среднего значения за последний час в сравнении с отметкой времени с отметками в 12:00:00 ежедневно?
РЕДАКТИРОВАТЬ: следующее работает для вычисления среднего и std на почасовой основе. Что я хочу сделать сейчас, так это дополнить значения и нанести на них правильные отметки.
df['OzoneHourlyMean'] = df.Ozone.resample('H', how='mean')
df['OzoneHourlyStd'] = df.Ozone.resample('H', how='std')
Приведенные выше команды выдают данные в следующем формате:
2014-06-10 15:00:00 43.033333
2014-06-10 16:00:00 44.291667
2014-06-10 17:00:00 44.691667
2014-06-10 18:00:00 45.175000
2014-06-10 19:00:00 44.433333
Комментарии:
1. Что вы подразумеваете под «наложением стандартного отклонения»
2. Извините за неясность. Я имею в виду отображать среднее значение / — std.
3. Вы хотите отобразить стандартное отклонение в виде вертикальных полос ошибок?
4. Да, это правильно.
Ответ №1:
В ответ на это, я думаю, это то, что осталось в отредактированном вопросе
Как мне продолжить построение среднего значения за последний час в сравнении с отметкой времени с отметками в 12:00:00 ежедневно?
Я думаю, все, что вы хотите сделать, это установить отметки в полдень каждый день. Вы можете создать свой собственный список тиков, а затем использовать их. Взаимодействие с pandas может испортить xticks, поэтому я бы, вероятно, просто использовал прямой matplotlib. Для вас что-то вроде этого?
tickv = pd.date_range('10/06/2014 12:00:00', periods=5, freq = 'D')
plt.plot(df.index, df['OzoneHourlyMean'])
plt.xticks(tickv)