类型错误:boxplot()收到了一个意外的关键字参数'labels'。

5

我正在使用ipython 3.2.0,尝试使用箱线图。在线文档和示例表明应该存在一个关键字“labels”,正如在这个SO帖子中所述,但我收到以下错误:

TypeError: boxplot() got an unexpected keyword argument 'labels'

标签关键字被删除了吗?如果是这样,那么获取箱线图图例的官方方法是什么?

你能展示一下你的代码吗?标签应该是箱线图的关键词。 - NightShadeQueen
问题是我安装了 matplotlib 1.3.1。我已升级到 1.4.3,但是遇到了一个新问题,即在启动时 pylab 报错“ImportError: cannot import name _tkagg”。 - MRule
更新:tk问题已经通过此处列出的步骤解决:https://github.com/pism/regional-tools/issues/3 - MRule
3个回答

3

我明白了。原来我有matplotlib 1.3.1版本。我错误地认为通过pip升级ipython也会更新matplotlib。我不确定如何单独更新matplotlib,但我会研究一下。 - MRule
尝试使用pip install --upgrade --user matplotlib。 - Christoph
1
嗯,但是我在使用matplotlib-3.3.4 / python 3.9.1时遇到了这个错误。 - roberto tomás

1

这个解决方案对我不起作用(Windows上的Python 33)。 我找到了另一种方法,并在这里留下,以防其他人需要:

  1. 卸载旧版本:pip uninstall matplotlib
  2. 从这里下载wheel文件https://pypi.python.org/pypi/matplotlib/1.4.3
  3. 运行pip install path_to_whl_file

0
问题已解决,以下是完整的总结:
  1. 如tcaswell所述,自1.4.0版本起,labels命令就已经可用了。
  2. "sudo pip install --upgrade ipython" 只会更新ipython。
  3. 我的错误在于假设matplotlib是matplotlib的“依赖项”,并且pip也会像apt一样升级它。
  4. "sudo pip install --upgrade matplotlib" 虽然可以工作,但在ipython启动时会导致“ImportError: cannot import name _tkagg”错误。
  5. 根据这里的说明,删除matplotlib,安装tk和tk-dev包,然后重新安装matplotlib,即可解决_tkagg错误。

1
你几乎 永远 不应该执行 sudo pip install ...,因为它可能会干扰你的系统级安装包。如果你想使用与你的发行版不同的库版本,可以使用虚拟环境(venv 或 conda)。 - tacaswell
好吧,这是我在网上找到的更新ipython/matplotlib的推荐解决方案。你有正确执行更新以及如何撤消任何损坏的参考资料吗?我先尝试运行apt,但它报告所有软件包都是最新的,这表明官方的Ubuntu存储库仍然具有非常旧的matplotlib/ipython版本? - MRule
2
我建议使用Anaconda +环境或Enthought Canopy或Venv + Pip。 - tacaswell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接