2013-08-25 49 views
3

我有一個數組切片:matplotlib沒有繼續行NaN的

array([1.0, 2.0, 3.0, None, 4.0, None, 5.0, None, 6.0, None], dtype=object) 

其中繪製的樣子THIS

時我如何獲得點/連接線的無值之後繼續?我嘗試使用astype將對象的數據類型更改爲float,並將None替換爲nan,但它沒有區別,我也嘗試使用np.where(np.isnan())等掩碼數組,但它沒有使一個區別。我的繪圖命令很簡單:

plt.plot(x, array, 'ro--') 

其中x是一個numpy數組。

+0

您顯示的「數組」不能與您顯示的軸相對應。它是一個像numpy.where那樣的索引數組嗎? – Jblasco

+0

Jblasco - 道歉,我改變了值,所以數組讀起來不麻煩。 – user1654183

回答

7

這是正確的行爲,mpl試圖連接相鄰的點。如果你在任何一方有積分nan,那麼沒有有效的方法將它們連接到任何東西。

如果你想不理你nan小號打印時,然後帶他們出去

ind = ~np.isnan(np.asarray(data.astype(float))) 
plt.plot(np.asarray(x)[ind], np.asarray(data)[ind], 'ro--') 

所有asarray都只是爲了確保示例將工作,同時與astype

也,使用影子(根據python分辨率和語義)類(如數組)或常用函數的變量名是非常糟糕的做法。

+0

tcaswell - 謝謝你的回答。在我的代碼中,這個數組並不是數組,我只是將它改成了這個數組,所以很明顯它是什麼。似乎更改數組的名稱和值引起了更多的困惑,比解決它:)。再次歡呼。 – user1654183