matplotlib标签的关键字参数的多个值

时间:2017-07-20 23:18:07

标签: python python-2.7 pandas matplotlib

为饼图运行一些示例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 ()得到关键字参数的多个值   '标签'

1 个答案:

答案 0 :(得分:1)

您似乎正在运行matplotlib 1.3或更低版本。在任何情况下,不支持将标签作为关键字参数传递给legend的版本。

因此,您对legend的致电需要

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

(这里的逻辑是,如果给出一个位置参数,它应该是标签。)

当然另一个选择是更新到新版本的matplotlib(大于1.5),其中句柄和标签可以作为关键字参数传递,并且问题中的代码有效。

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