Если это может быть полезно для кого-либо, я отправляю, как я решил это.Данные, где x - часы, следующие:
x,y
0:30,5
1:00,3
2:30,4
6:00,7
9:00,3
13:00,4
15:30,8
17:30,5
20:00,7
22:30,2
23:30,6
И код:
import pandas as pd
import datetime as dt
df = pd.read_csv("graph.csv")
df['x'] = pd.to_datetime(df['x'])
df = df.set_index(["x"])
s = dt.datetime.strptime('00:00:00', '%H:%M:%S')
r = []
r.append(s.strftime('%H:%M:%S'))
for i in range(30,60*24,30):
r.append((s+dt.timedelta(minutes=i)).strftime('%H:%M:%S'))
row = [0]
r = pd.to_datetime(r)
for i in r:
if i in df.index:
pass
else:
df.loc[i] = row
df.sort_index(inplace=True)
df.sum(level=0).plot.bar(stacked=True, figsize=(50,30),edgecolor='k', linewidth=1, width=1)