pie() 收到意外的关键字参数 'startangle

2 投票
2 回答
10287 浏览
提问于 2025-04-19 16:05

正如标题所说,我在调用以下方法时遇到了一个 TypeError 错误:

plt.pie(ylist, labels=xlist, autopct='%1.1f%%', startangle=90, counterclock=False)
>>> TypeError: pie() got an unexpected keyword argument 'startangle'

当我不写 startangle 时,我又遇到了一个关于 counterclockTypeError 错误:

plt.pie(ylist, labels=xlist, autopct='%1.1f%%', counterclock=False)
>>> TypeError: pie() got an unexpected keyword argument 'counterclock'

但如果我同时不写 counterclock,那就没问题了,能正常显示我想要的图。

不过根据 文档,这两个参数确实是存在的。我也检查过我的 python-matplotlib 库是最新的(不可能 matplotlib.pyplot 过时,而 matplotlib 是最新的,对吧?)。顺便说一下,我使用的是 Python 2.7.3。

有人能解释一下这个错误吗?

2 个回答

2

今天早上我在新安装的Ubuntu 12.0.4上遇到了同样的问题。

最后解决办法是:

$pip uninstall matplotlib  
$apt-get remove --purge python-matplotlib  
$wget https://github.com/matplotlib/matplotlib/archive/master.zip

解压缩文件,然后进入新目录matplotlib-master,

$python setup.py build   
$python setup.py install

接着用pip检查一下:

$pip show matplotlib
Name: matplotlib
Version: 1.4.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: numpy, six, python-dateutil, pyparsing, nose, mock, nose, mock

成功了!

3

确实,matplotlib的1.1.x版本没有这个功能

def pie(x, explode=None, labels=None, colors=None, autopct=None,
        pctdistance=0.6, shadow=False, labeldistance=1.1, hold=None):

而1.4.0版本是有的

def pie(x, explode=None, labels=None, colors=None, autopct=None,
        pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,
        radius=None, counterclock=True, wedgeprops=None, textprops=None,
        hold=None)

撰写回答