【问题标题】:Multiple values for keyword argument for matplotlib labelsmatplotlib 标签的关键字参数的多个值
【发布时间】:2017-12-26 20:30:21
【问题描述】:

为饼图运行一些示例 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)

Traceback(最近一次调用最后一次):文件“piechart.py”,第 23 行,在 plt.legend(loc="best", labels=pie_labels) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py”, 第 3381 行,在传说中 ret = gca().legend(*args, **kwargs) 文件“/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() got multiple values for keyword argument “标签”

【问题讨论】:

    标签: python python-2.7 pandas matplotlib


    【解决方案1】:

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

    因此您需要拨打legend

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2016-09-03
      • 2014-03-10
      • 2016-11-05
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      相关资源
      最近更新 更多