2017-02-04 87 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列中找到,因此在我的開始日期和結束日期之間帶回所有天數的最大範圍之間的分組英寸所以我有很多零值可以解釋我的情節。
不知何故,我沒有檢查這個問題。謝謝你的時間,但!

相關問題