Matplotlib绘图窗口未出现。

19

我使用的是64位的Python 2.7.3版本,并安装了64位的pandas和matplotlib 1.1.1版本。目前,我的所有图表都没有显示出来。在尝试从几个不同的数据框绘制图表后,我因挫败感而放弃,并尝试了以下示例http://pandas.pydata.org/pandas-docs/dev/visualization.html

输入:

import matplotlib.pyplot as plt
ts = Series(randn(1000), index=date_range ('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
pylab.show()

输出:

Axes(0.125,0.1;0.775x0.8)

没有弹出绘图窗口。我读过其他的StackOverflow帖子,建议我可能缺少DLL文件。有什么建议吗?


2
看你的代码片段,我期望在结尾处看到 plt.show() 而不是 pylab.show()。 - Wouter Overmeire
3个回答

35

我并不认为这完全是Pandas的问题。

是否

import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()

提出一个情节?

如果不是这样:

您是如何安装matplotlib的?是从源代码安装还是从软件包管理器/预构建二进制文件安装的?

我怀疑如果您运行:

import matplotlib            
print matplotlib.rcParams['backend']

结果将是一个非GUI后端(几乎肯定是“Agg”)。这表明您没有适合的GUI工具包可用(我个人使用Tkinter,这意味着我的后端被报告为“TkAgg”)。

解决此问题取决于您的操作系统,但如果您可以安装GUI库(其中之一是Tkinter、GTK、QT4、PySide、Wx),那么 pyplot.show() 应该会为您弹出一个窗口。

希望对您有所帮助,


1
原来它确实可以工作,我只是在我的代码中使用了不正确的语法。谢谢。 - user1518837
@pelson,你用pip安装了matplotlib吗?因为我只有在使用sudo命令时才能正常工作。 - Eliethesaiyan
这是因为你的Python是由root拥有的。这是Linux操作系统的软件包管理器模式。请查看https://dev59.com/b2s05IYBdhLWcg3wFN4h以获取可能的解决方案。 - pelson
2
我有一个类似的问题 - 当我使用plt.show()时,什么也没有显示出来。我使用的是Python 3,并通过pip3安装了matplotlib。rcParams ['backend'] ='Agg'。我通过apt-get安装了python-tk,但仍然无法弹出窗口。 - disruptive
1
尝试将 rcParams['backend'] = 'TkAgg' - pelson

1

我在虚拟环境中工作时遇到了这个问题。

原因

问题的原因是当你使用pip install matplotlib时,它无法找到任何后端(即使它们已经安装在你的机器上),所以它使用“agg”后端,它不会生成任何图表,只会写入文件。要确认这一点,请执行以下操作:python -c "import matplotlib; print matplotlib.get_backend()",你可能会看到agg

然而,我可以在系统上(虚拟环境之外)成功使用matplotlib。我也无法安装PySide、PyQt或让它为TkAgg工作,原因各不相同。

解决方案

最终,我只是在系统版本的matplotlib上创建了一个链接(从venv之外开始):

...$ pip install matplotlib
...$ cd /to/my/venv/directory
...$ source venv/bin/activate
(venv) .... $ pip uninstall matplotlib
(venv) .... $ ln -s /usr/lib/pymodules/python2.7/matplotlib $VIRTUAL_ENV/lib.python*/site-packages

之后,我可以使用matplotlib并显示绘图。你本地的matplotlib版本可能在不同的位置。要查看它在哪里,请在python环境之外进行操作。

...$ python -c 'import matplotlib; matplotlib.__file__'

0

尝试安装这些库,对我来说有效:

$ sudo apt-get install tcl-dev tk-dev python-tk python3-tk

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