[ 已解决 ] 求助 python-matplotlib 调用

大家好,第一次来贵论坛。
小弟在安装 python 模块 matplotlib 之后遇到点问题
安装命令:

sudo zypper in python-matplotlib

安装正常
但是调用时候出现错误
错误见图
希望大家能帮我看看。
谢谢!

其实你可以安装 ipython 然后运行 ipython --pylab 就省得导入了。

来自我的 MI 2S 上的 Tapatalk

1赞

谢谢!
我先去试试
不过 Ipython 毕竟只能写一句翻译一句,不能写脚本吧?

试过之后发现还是不行。。。不过还是谢谢你

你安装了 numpy scipy 吗?

来自我的 MI 2S 上的 Tapatalk

ipython 的交互式终端直接导入了各种东西,应该可以直接用 plot 函数而不需要 pl.plot。我现在在上课没时间测试。

来自我的 MI 2S 上的 Tapatalk

是 from matplotlib.pyplot import * 吗?

来自我的 MI 2S 上的 Tapatalk

脚本就加一些 import 先。。。

来自我的 MI 2S 上的 Tapatalk

我学过一段时间 python, 也用过 python 科学计算相关的模块。这次是换了 opensuse 系统,出现了这个问题。应该不是写脚本的问题。

应该是在 matplotlib.pyplot 里面

来自我的 MI 2S 上的 Tapatalk

参考 cnblogs.com/wei-li/archive/2012/05/23/2506940.html

来自我的 MI 2S 上的 Tapatalk

这样也不对。您是什么系统?当时怎么安装的 matplotlib 模块?谢谢你的问答

不会吧,我是 openSUSE 13.1,就是用 zypper 安装的啊。具体安装了哪些包我忘了

来自我的 MI 2S 上的 Tapatalk

好头疼。。我 opensuse 装了 3 次了。在官方下的。

我觉得就是你的

import matplotlib as pl

出错的。

我看了一下软件包:

你 import 的 matplotlib 实际上是一个文件夹,下面有很多个 .py 文件。

我虽然不懂 python 但是从 C 的角度觉得也不应该 import 文件夹吧。

应该是

import matplotlib. 什么 as pl

至于到底是什么,我觉得你可以去

/usr/lib64/python2.7/site-packages/matplotlib 下面自己看。

我觉得不是。应该是可以这样中的,只不过应该你就要用 pl.pyplot.plot。

来自我的 MI 2S 上的 Tapatalk

marguerite@darkpink:~> python
Python 2.7.5 (default, May 30 2013, 16:55:57) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as pl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 98, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
ImportError: No module named backend_tkagg

sudo zypper in python-matplotlib-tk

marguerite@darkpink:~> python
Python 2.7.5 (default, May 30 2013, 16:55:57) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as pl
>>> pl.plot
<function plot at 0x225b488>

所以:

  1. 你 import 代码写错了。
  2. 你没自己选择后端,也没安装默认的 tk 后端。
1赞

寨主果然太强大了!
安装 tk 后端以后就好了。
以前在其他 linux 上没遇到过。
十分感谢

不知道你怎么改得。因为我的 opensuse 上的 matplotlib 还是无法显示图片,但我找到了解决的办法了。
我使用 qt 作为图形后端,安装 matplotlib-qt4。
然后在 ipython 中输入

>>> import matplotlib


>>> matplotlib.matplotlib_fname()

显示 matplot 配置文件的位置:

'/usr/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'

然后在里面把 Agg 修改为

backend : Qt4Agg

然后一切就 OK,甚至在 Pycharm 里都可以正常显示。