簡體   English   中英

如何將 pandas.plot() 轉換為 Matplotlib.errorbar()

[英]How to transfer pandas .plot() to Matplotlib .errorbar()

我正在尋找 plot 行上的錯誤欄plot 我確實使用了 pandas 的.plot() function

scores_xgb.plot(x='size', y='MSE_mean_tot', kind='line',logx=True,title='XGBoost 5 samples, 5 fold CV')

運行它會得到以下 plot:

為了繪制錯誤欄,我選擇使用.errorbar() 。運行單元格時

plt.errorbar(x=scores_xgb.size, y=scores_xgb.MSE_mean_tot, yerr=std_xgb ,title='XGBoost 5 samples, 5 fold CV')
plt.show()

我收到以下錯誤消息:

ValueError: 'x' and 'y' must have the same size

這讓我感到困惑,因為我在兩個示例中都使用了相同的 Dataframe,每次分別對xy使用相同的變量,因此它兩次都具有相同的大小 (12)。

注意: yerr = std_xgb的大小也為 12。

pandas.DataFrame對象上有一個名為size的屬性,它是一個數字,等於 DataFrame 中的單元格數( df.shape中值的乘積)。 您正在嘗試訪問名為size,但 pandas 在選擇列名稱size之前選擇了名為size的屬性。 由於單個數字的形狀為 1,但 dataframe 中的列的長度為 12,因此形狀不匹配。

相反,使用字符串索引 dataframe 並獲取列:

plt.errorbar(x=scores_xgb['size'], y=scores_xgb['MSE_mean_tot'], yerr=std_xgb, title='XGBoost 5 samples, 5 fold CV')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM