У меня в пандах есть следующий фрейм данных:
>>>name Hour trt_level stress date value
0 D43 9 H control 2019-06-07 0.4561
1 D43 10 H control 2019-06-07 0.3216
2 D42 8 M stress 2019-06-07 0.2143
3 D42 9 M stress 2019-06-07 0.1342
4 D21 8 L stress 2019-06-07 0.3214
...
Я хочу создать линейную диаграмму с полосой ошибок с помощью mse / std, что-то вроде этого:
из: https://matplotlib.org/1.2.1/examples/pylab_examples/errorbar_demo.htmlbut в моем случае: по оси X должен быть час, по оси Y - значения и три строки, по одной для каждого уровня обработки (trt_level), поэтому линия для H, M, L.
Для этого я использовал функции groupby и agg:
data = df.groupby(['trt_level','Hour']).agg([np.mean, np.std])
data.head()
>>> value
mean std
trt_level Hour
H 7 0.231 0.0058
8 0.212 0.0094
9 0.431 0.1154
...
wwhich предоставил базу данных с treamtnet и часом в качестве индекса, среднего и стандартного значения, но проблема в том, что когда я пытаюсь построить график, я получаю только одну строку без std сверху:
data = data['value']
qual.plot(kind = "line", y = "mean", legend = False,
xerr = "std", title = "test", color='green')
Когда желаемый результат должен состоять из трех строк со стандартным выводом наверху (лучше, если это может быть MES, а не стандартное, но в этом вопросе я больше сосредоточусь на трех строках и отображении стандартного сообщения)
Моя конечная цель - получить диаграмму, которая больше похожа на эту (извините за ужасный рисунок):
но на все часы