我想用python中的条形图绘制时间序列。 条形宽度是每个条形的开始和结束时间。事件类型只是一个标签,而计数是一个条形的高度。 在pandas数据帧中,数据如下所示。
Qt:ConnectionType
有什么想法吗?
由于
答案 0 :(得分:0)
不确定我的问题是否正确,但您可以使用fill_between()
。我不知道大熊猫能否做到你所要求的。
由于数据不是很多,因此产生的情节不是很壮观。
from io import StringIO
import matplotlib.patches as patches
# Just preparing the data ..
data = """
start,end,event,counts
2016-10-02 16:58:00,2016-10-02 17:28:00,700,181
2016-10-03 07:07:00,2016-10-03 07:35:50,800,174
2016-10-03 07:36:00,2016-10-03 08:05:00,100,175
2016-10-04 19:47:00,2016-10-04 20:02:00,50,91
2016-10-05 08:09:00,2016-10-05 08:17:00,100,49
"""
df = pd.read_table(StringIO(data), sep=',')
df.start = pd.to_datetime(df.start)
df.end = pd.to_datetime(df.end)
# Plotting ..
fig = plt.figure(figsize=(16, 4.5))
ax = fig.gca()
for index, r in df.iterrows():
x = (r.start.value, r.end.value)
h = r.counts
ax.fill_between(x, 0, h)