2013-07-28 40 views
1

傳遞一個熊貓系列,以pyplot的fill_between()函數產生以下錯誤:無法將熊貓系列傳遞給pyplot的fill_between函數?

<type 'exceptions.KeyError'> -1 

然而,其他pyplot功能似乎是罰款以系列爲輸入(圖()和散射()似乎做工精細用它)。我知道這個問題可以通過傳遞my_series.value而不是my_series來解決,但是有人可以解釋爲什麼一些pyplot繪圖函數似乎可以將系列作爲輸入來使用,而另一些則不是。給定系列時哪些功能會崩潰?謝謝。

回答

1

因爲matplotlib被寫入序列或np.ndarray類似的對象作爲參數(並且對pandas一無所知)。在內部使用的所有方法都可以在pandas對象和numpy對象上工作的情況下,它就可以工作(鴨子打字的魔力)。如果pandas對象的行爲不正確(在這種情況下,使用v[-1]獲取第一個維度的最後一個元素),則會引發錯誤。

如果給定函數與pandas對象的工作依賴於函數的內部,並且不保證,因爲你基本上是在一個未公開的方式使用matplotlib爲偶數的mpl小版本之間的穩定。

1

直到pandas沒有正式plt.fill_between功能實現的,你仍然可以申請pd.Seriespd.DataFrame作爲pd.Series().valuespd.DataFrame().values使fill_between地塊。