将时间序列事件绘制为Python中的条形图

时间:2017-12-01 09:19:29

标签: python pandas dataframe matplotlib time-series

我想用python中的条形图绘制时间序列。 条形宽度是每个条形的开始和结束时间。事件类型只是一个标签,而计数是一个条形的高度。 在pandas数据帧中,数据如下所示。

Qt:ConnectionType

有什么想法吗?

由于

1 个答案:

答案 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)