注意:截至2022年6月,Matplotlib(MPL)已更新至版本3.5.2。本文发布于2014年,涉及的是Ubuntu软件中心中Python-2.7的MPL 1.3版本,因此安装在/usr/
目录下,属于root
环境。因此,本文已过时且已经过时,我可能会将其删除。
升级到最新的开发版本Matplotlib-1.4.x。使用virtualenv进行安装。
$ pip install -e git@github.com:matplotlib/matplotlib.git
然后,OP的命令可以在所有平台上运行。在GitHub的matplotlib主分支上还有一个新的嵌入式webagg示例,它可以在我所有的系统(Windows-7x64、Ubuntu-14.14和Xubuntu-14.14)上运行。
使用OP的命令与Matplotlib-1.3.1一起使用时,结果因所使用的平台而异。在一台机器上(Ubuntu-14.14),如果我使用sudo
来执行OP的命令,则可以显示图形:
$ sudo python
>>> import matplotlib
>>> matplotlib.use('webagg')
>>> import matplotlib.pyplot as plt
>>> plt.plot(range(10))
>>> plt.show()
这在虚拟环境和Ubuntu发行版的matplotlib版本中都可以工作。
在VMWare Player虚拟机(Xubuntu-14.14托管在Windows-7x64上)上,我能够使用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'
这与图像为何不显示无关;此错误仅在Linux机器上出现,其中mpl-data文件夹不在matplotlib.backends.backend_webagg
期望的位置,而实际位于/usr/share/matplotlib/
。具体来说,backend_webagg
正在寻找文件matplotlib.png
,它用作Web浏览器标签的图标,即使Tornado无法找到此文件,它仍会提供页面,但是不幸的是它仍然发出此错误。
如果您使用virtualenv,则不会看到favicon错误。
在Ubuntu-14.14上未使用sudo
以及Windows-7x64机器上使用Matplotlib-1.3.1时,我遇到了与@allisonmuller在上面评论中遇到的相同的“figure 1”链接问题。