为饼图运行一些示例pandas / matplotlib代码,会出现关键字错误的多个值。我尝试删除.legend方法中的标签。它确实有效,然而我的标签并不是我想要的方式。我该怎么办?
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)
回溯(最近一次呼叫最后一次):文件" piechart.py",第23行, plt.legend(loc =" best",labels = pie_labels)File" /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py& #34 ;, 第3381行,传说中 ret = gca()。legend(* args,** kwargs)File" /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", 传说中的第4778行 self.legend_ = mlegend.Legend(self,handles,labels,** kwargs)TypeError: init ()得到关键字参数的多个值 '标签'
答案 0 :(得分:1)
您似乎正在运行matplotlib 1.3或更低版本。在任何情况下,不支持将标签作为关键字参数传递给legend
的版本。
因此,您对legend
的致电需要
plt.legend(pie_labels, loc="best")
(这里的逻辑是,如果给出一个位置参数,它应该是标签。)
当然另一个选择是更新到新版本的matplotlib(大于1.5),其中句柄和标签可以作为关键字参数传递,并且问题中的代码有效。
plt.legend(loc="best", labels=pie_labels)