问题描述
在使用 matplotlib 画 violinplot 这个图形的时候报错了。出现了下面的错误提示:
AttributeError: 'AxesSubplot' object has no attribute 'violinplot'
chicho@destiny:~/test$ python boxplot_vs_violin.py
Traceback (most recent call last):
File "boxplot_vs_violin.py", line 36, in <module>
axes[0].violinplot(all_data,
AttributeError: 'AxesSubplot' object has no attribute 'violinplot'
发现可能是自己的matplotlib 的版本太旧。
检查了一下自己的版本信息,是1.3.1 不能支持2.0 以上的功能
所以现在就是要更新我们的版本信息
查看matplotlib 版本信息的方法
查看matplotlib 版本信息的方法总共有两种
方法一:
$ python2.7 -c 'import matplotlib; print matplotlib.__version__, matplotlib.__file__'
方法二:
chicho@destiny:~$ ipython
Python 2.7.12 (default, Jul 18 2016, 15:02:52)
Type "copyright", "credits" or "license" for more information.
IPython 1.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import matplotlib
In [2]: print matplotlib.__version__
2.2.2
直接在Python环境下来查看。
当然如果你还没有安装的话,那么你就按照官网的方法来安装就好了。方法如下:
python -mpip install -U pip
python -mpip install -U matplotlib
按照这篇文章介绍的方法,我试了一下,发现并有没什么用。
https://blog.csdn.net/YhL_Leo/article/details/71552526
出现了下面的问题
所以还是要靠自己呀。
首先我先安装了一个依赖库,因为在进行某步的时候提醒我需要安装subprocess32
安装的方法:
pip install subprocess32
我首先安装官网的方法:
第一步
sudo python -mpip install -U pip
这句话的意思是安装跟新的pip 版本,但是用这个语句的话,不能自动更新版本哎。
发现出错了, 我的版本信息是1.5.4 可是要求的版本信息是9.0.1
所以现在的目的就是先更新我们的pip
跟新一下
pip install -U pip
这个没有啥子用哟
所以就重新安装了一下pip
sudo python get-pip.py
看吧这样我们就直接得到了我们的更新之后的pip
发现直接用命令安装matplotllib不行,所以就从源码下载安装
自动安装出现的提示
https://matplotlib.org/faq/installing_faq.html#install-from-git
具体的方法
git clone git://github.com/matplotlib/matplotlib.git
cd matplotlib
python -mpip install .
我之前安装的时候没有更新pip 在 python -mpip install . 这里出现了问题
在这里安装的时候必须保证我们的pip 的版本信息是9.0.1 以上否则就会出错,上面已经讲了跟新的方法
sudo python get-pip.py
就是这么做
跟新之后我们在安装一遍试试
sudo python -mpip install .
发现还是不行,我们用跟新的方法来看看问题
sudo pip install -U matplotlib
最后好了,所以在安装的时候我们先要跟新pip 之后在安装的时候记得要加 sudo 否则权限不够会出错。
总结
- 如果自动安装不行就采用源码安装。一般已经安装了某个软件,自动跟新在安装好像都会失败,所以最好从源码安装的时候会避免了软件版本低,不能更新的问题
- 自动安装的时候最好保证pip 的版本是最新的