Matplotlib在virtualenv中不显示图表
我在我的虚拟环境中用pip安装了matplotlib,现在想画一个简单的图表。我使用的是Eclipse和PyDev。当我从Eclipse运行脚本时,根本没有显示任何图表。我尝试过其他问题中提到的一些建议,比如添加plt.ion(),但也没用。我在控制台中试过同样的代码,结果也是一样,什么都没显示。这是我的配置有问题吗?如果是的话,我该怎么解决?
出错的代码是:
import matplotlib.pyplot as plt
radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724]
plt.plot(radius, area)
plt.show()
代码本身没有问题。在虚拟环境外面运行是没问题的。问题出在我使用虚拟环境的时候。这个问题似乎和我的配置有关。而且为了澄清,我没有收到任何错误信息。只是窗口就是不显示。
谢谢
5 个回答
首先,你可能想看看这个链接:
为了找出问题所在,可以尝试用git来安装matplotlib,而不是用pip或easy_install。我们要进行一个更手动的安装:
git clone git@github.com:matplotlib/matplotlib.git
cd matplotlib
python setup.py
这段代码会显示出pip或easy_install本来会做的配置。你需要查看“可选的后端依赖项”,确保一些能生成窗口的选项是启用的(比如Tkinter、Gtk+、Mac OS X原生、Qt、Cairo等)。如果你发现这些都不可用,那你需要先为你的操作系统安装一些这些库,然后再继续安装matplotlib。
比如说,安装Tk(在ubuntu上可以用命令:sudo apt-get install tcl-dev tk-dev
),然后当你重新运行
python setup.py
时,你会看到Tk后端是启用的。接下来继续执行
python setup.py build && python setup.py install
应该就能让你顺利运行了……不过到那时你甚至可以删除整个git克隆的目录,回去用pip安装。
我也遇到过同样的问题,用 easy_install
安装 matplotlib
也没有解决。最后我发现,问题其实是 matplotlib 找不到可以用来绘图的后端。
我通过以下方法解决了这个问题(我使用的是 Debian wheezy):
pip uninstall matplotlib
sudo apt-get install tcl-dev tk-dev
pip install matplotlib
你的代码在我使用的OSX 10.7和Python 2.7的虚拟环境里可以正常运行:
你在虚拟环境中使用的Python版本是什么?我猜可能是你没有安装matplotlib这个库,或者你安装的某个库没有正确安装。在Python 2.7中,我是这样安装matplotlib的。你能在一个新的虚拟环境中试试这些步骤,看看能不能成功吗?
pip install numpy
pip install scipy
easy_install matplotlib