Matplotlib:WebAgg后端没有显示任何数字

时间:2014-02-27 21:11:00

标签: python browser matplotlib plot

我正在使用Python 2.7.6 32位和Matplotlib 1.3.1。
当我使用默认后端时,如本例所示,显示的是图:

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


当我尝试使用WebAgg时,MPL页面会自动加载,但没有任何数字:

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


我在Windows和Ubuntu上使用Firefox,Chrome和IE测试了这段代码,没有任何成功...... 有人可以帮帮忙吗?提前谢谢!

3 个答案:

答案 0 :(得分:1)

经过大量的搜索和测试后,我最终使用pip卸载Matplotlib,然后重新安装它(使用--upgrade命令,只是为了确定):

pip uninstall matplotlib
pip install matplotlib --upgrade

它有效!现在我可以在浏览器窗口看到WebAgg图了! 也许我没有正确安装Matplotlib ...

谢谢你的建议!

答案 1 :(得分:1)

更新到最新的开发版本Matplotlib-1.4.x。使用

在virtualenv中安装
$ pip install -e git@github.com:matplotlib/matplotlib.git

然后OP的命令适用于所有平台。还有一个新的embedded webagg example in the matplotlib master branch on GitHub适用于我的所有系统(Windows-7x64,Ubuntu-14.14和Xubuntu-14.14)。

使用Matplotlib-1.3.1的OP命令,我得到混合结果,具体取决于我使用的平台。在一台机器上(Ubuntu-14.14),如果我使用sudo执行OP的命令,我就能显示该数字:

$ sudo python
>>> import matplotlib
>>> matplotlib.use('webagg')
>>> import matplotlib.pyplot as plt
>>> plt.plot(range(10))
>>> plt.show()

这适用于virtualenv和matplotlib的Ubuntu发行版本。

在VMWare Player虚拟机(托管在Windows-7x64上的Xubuntu-14.14)上,我能够使用OP的命令显示该图,而不是 sudo。在第三台(Windows-7x64)机器上,无论是否有管理员权限,我都无法使用OP的命令获得数字。我还将matplotlib.rcParams['webagg.port']更改为8080和8000,但这也没有用。

在使用从发行版存储库安装的matplotlib的Ubuntu-14.14上,您将看到以下回溯:

File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_webagg.py", line 381, in get
'matplotlib.png'), 'rb') as fd:
IOError: [Errno 2] No such file or directory: '/usr/lib/pymodules/python2.7/matplotlib/mpl-data/images/matplotlib.png'

它与图像不出现的原因无关;此错误仅出现在machines-data文件夹不在matplotlib.backends.backend_webagg预期位置的Linux机器上,但实际上在/usr/share/matplotlib/中。具体来说,backend_webagg正在寻找用作网络浏览器标签的favicon的文件matplotlib.png,实际上即使Tornado找不到此文件,Tornado仍然会为该页面提供服务,但不幸的是它仍然会发出此错误。

如果你使用virtualenv,你将看不到favicon错误。

在Ubuntu-14.14和Windows-7x64机器上使用没有sudo的Matplotlib-1.3.1,我得到了相同的#34;图1和#34;链接问题@allisonmuller在上面的评论中得到了。

答案 2 :(得分:0)

只是添加Mark Mikovski的答案,我发现如果您添加如下符号链接

cd /usr/lib/pymodules/python2.7/matplotlib /

ln -s / usr / share / matplotlib / mpl-data mpl-data

这似乎可以解决问题