[ 已解决 ] 求助 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 里都可以正常显示。