2017-07-20 7 views
0

円チャートのpandas/matplotlibコードをいくつか実行すると、キーワードエラーの複数の値が表示されます。 .legendメソッドからラベルを削除しようとしました。それは動作しますが、私のラベルは私が望むやり方ではありません。私に何ができる?matplotlibラベルのキーワード引数の複数の値

pie_labels=['a', 'b', 'c', 'd'] 
counts = pd.Series(pie_sizes, index=pie_labels) 
explode = (0, .2, .3, .4) 
counts.plot(kind='pie', fontsize=17, explode=explode, autopct='%1.1f%%') 
plt.axis('equal') 
plt.ylabel('') 
plt.legend(loc="best", labels=pie_labels) 
plt.show(block=True) 

Traceback (most recent call last): File "piechart.py", line 23, in plt.legend(loc="best", labels=pie_labels) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 3381, in legend ret = gca().legend(*args, **kwargs) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 4778, in legend self.legend_ = mlegend.Legend(self, handles, labels, **kwargs) TypeError: init() got multiple values for keyword argument 'labels'

答えて

1

あなたはmatplotlibのバージョン1.3以下を実行しているように見えます。いずれの場合でも、ラベルをサポートしていないバージョンは、キーワード引数としてlegendに渡されます。 legend

あなたの呼び出しは、それゆえ、他のオプションがある。もちろん、

plt.legend(pie_labels, loc="best") 

(ここではロジックが1つの位置引数が指定されている場合、それはラベルであるべきだということです。)

にする必要がありますmatplotlibの新しいバージョン(1.5以上)に更新します。ハンドルとラベルはキーワード引数として渡すことができ、質問のコードは有効です。

plt.legend(loc="best", labels=pie_labels) 
関連する問題