2017-02-04 86 views
1

我使用matplotlib绘制每个颜色不同的多行线。它很好地工作,但不知怎的,所有绘制的线连接到(0,0)的最后一个值。虽然数据框中没有NaN或NULL值,但Matplotlib绘制了(0,0)

X轴:bin这是我的时限
Y轴:count其中包含的值,我想绘制

我的数据框看起来是这样的:

>df3.head() 
      start_time count date_day  bin cw 
0 2016-05-02 00:00:00  45 2016-05-02 00:00:00 18 
1 2016-05-02 00:15:00  35 2016-05-02 00:15:00 18 
2 2016-05-02 00:30:00  34 2016-05-02 00:30:00 18 
3 2016-05-02 00:45:00  31 2016-05-02 00:45:00 18 
4 2016-05-02 01:00:00  34 2016-05-02 01:00:00 18 

>df3.tail() 
       start_time count date_day  bin cw 
17563 2016-10-31 22:45:00 114 2016-10-31 22:45:00 44 
17564 2016-10-31 23:00:00  94 2016-10-31 23:00:00 44 
17565 2016-10-31 23:15:00 121 2016-10-31 23:15:00 44 
17566 2016-10-31 23:30:00 127 2016-10-31 23:30:00 44 
17567 2016-10-31 23:45:00 135 2016-10-31 23:45:00 44 

这是怎么了我剧情: 我的日历星期单独的线cw

cw = np.arange(18,45,1) 
for x in cw: 
    df4 = df3[df3.cw == x] 
    xa = df4['bin'] 
    ya = df4['count'] 
    plt.plot(xa, ya) 
plt.show() 

我能得到什么是这样的: Plot (labels and axis are not formatted yet..)

对于df3.any().isnull()我没有得到任何NaN的这应该是好的,但它仍然地块(0,0)。

df3.any().isnull() 
Out[297]: 

start_time False 
count   False 
date_day  False 
bin   False 
cw   False 
dtype: bool 

任何想法我怎么能摆脱这种连接线​​(0,0)

非常感谢!

+0

第一次快速的猜测:您正在尝试在整个一周7天的绘制时间,但在剧情,你只看到从一个单一的一天的数据。这对你有意义吗?您希望在其他6天的数据中发生什么? – ImportanceOfBeingErnest

+0

是的,没错。我的数据框只包含星期一。我刚用'cw'来分隔线条,因为我不知道如何首先分离或分割数据,因为'start_time'是连续的(但星期一至星期五),但是我的'bin'列是重复序列。 – m2thek

回答

0

我找到了解决方案:切片数据时我有点太不小心了。

我切我的所有数据星期一(df.weekday == 0)设置。然后我用pandas.Grouper将我的星期一数据分组在15分钟内。
而这里的错误:Grouper由设在start_time列中找到,因此在我的开始日期和结束日期之间带回所有天数的最大范围之间的分组英寸所以我有很多零值可以解释我的情节。
不知何故,我没有检查这个问题。谢谢你的时间,但!

相关问题