Matplotlib在virtualenv中不显示图表

16 投票
5 回答
11678 浏览
提问于 2025-04-17 11:53

我在我的虚拟环境中用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 个回答

6

首先,你可能想看看这个链接:

http://matplotlib.org/faq/installing_faq.html#matplotlib-compiled-fine-but-nothing-shows-up-when-i-use-it

为了找出问题所在,可以尝试用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安装。

9

我也遇到过同样的问题,用 easy_install 安装 matplotlib 也没有解决。最后我发现,问题其实是 matplotlib 找不到可以用来绘图的后端。

我通过以下方法解决了这个问题(我使用的是 Debian wheezy):

pip uninstall matplotlib
sudo apt-get install tcl-dev tk-dev
pip install matplotlib
9

你的代码在我使用的OSX 10.7和Python 2.7的虚拟环境里可以正常运行:

在这里输入图片描述

你在虚拟环境中使用的Python版本是什么?我猜可能是你没有安装matplotlib这个库,或者你安装的某个库没有正确安装。在Python 2.7中,我是这样安装matplotlib的。你能在一个新的虚拟环境中试试这些步骤,看看能不能成功吗?

pip install numpy
pip install scipy
easy_install matplotlib

撰写回答