Я хочу нанести на график свои данные временных рядов (велосипедов), указав среднее число велосипедов в час и день недели.
Вот выдержка из исходных данных:
date nb_bike
2019-09-20 12:00:00 15
2019-09-20 13:00:00 10
2019-09-20 14:00:00 17
2019-09-20 15:00:00 12
2019-09-20 16:00:00 24
Я вычислил это среднее значение для дня недели и часа следующим образом:
data_b = data_b_init.groupby([data_b_init.index.weekday.rename('wkday'),data_b_init.index.hour.rename('hour')]).mean()
data_b = data_b.reset_index()
Поэтому я хочу построить эти данные (здесь выписка):
data_b
wkday hour nb_bike_mean
0 0 0.44
0 1 0.11
0 2 0.00
0 3 0.11
0 4 0.00
0 5 0.67
0 6 0.78
0 7 6.44
0 8 13.83
0 9 9.78
Я хотел бы сделать что-то вроде этого: Как вывести данные за час, сгруппированные по дням? (особенно, как на этом графике:
, но я не могу найти, как делайте это, сохраняя информацию только по дням и часам, а не по дням.
Например, я попробовал этот код:
sns.lineplot(x='hour',y='nb_bike_mean',data=data_b, hue='wkday')
, но это не то, что я хочу, потому что я хочу оба wkday и час на оси х.
Знаете ли вы способ построения графика с двумя уровнями на оси х?
Или лучше, чтобы wkday и час были распознаны как дата и время, и объединить их в качестве индекса?