1. ホーム
  2. python

[解決済み] Stacked Barchartをプロットしようとすると、Shape mismatchのエラーメッセージが表示される

2022-01-30 20:05:34

質問

自分のデータから積み上げ型グラフを作成しようとしていますが、エラーメッセージが出続けます。

ValueError: Shape mismatch: オブジェクトは1つにブロードキャストできません。 形状

これが私が書いた該当のコードの内容です。

num = list(yearly_posts.index)
barWidth = 0.50
plt.bar(num,yearly_status.values, color='#b5ffb9',edgecolor='white',width=barWidth)
plt.bar(num,yearly_posts.values, color='#f9bc86',edgecolor='white',width=barWidth)

そして、これは私のデータのサンプルです。

#yearly_status table
year
2009     85
2010     86
2011    188
2012    274
2013    240
2014    171
2015    132
2016     22
2017     18
2018     13
dtype: int64

#yearly_posts table
year
2009     8
2010    19
2013    19
2014    40
2015    13
2016    20
2017    27
2018    17
dtype: int64

解決方法は?

問題は、両方のデータフレームに不等な数のエントリがあることで、そのために num が両者で異なっていました。解決策は、両者で異なるインデックスを使用することです。 num1num2 . さらに,2 次元配列の値を 1 次元配列に平坦化する必要があります. yearly_status.values.flatten()

num1 = list(yearly_status.index)
num2 = list(yearly_posts.index)
barWidth = 0.50
plt.bar(num1, yearly_status.values.flatten(), color='#b5ffb9',edgecolor='white',width=barWidth)
plt.bar(num2, yearly_posts.values.flatten(), color='#f9bc86',edgecolor='white',width=barWidth)