matplotlib散点在ipython笔记本中工作,但在控制台中不工作
我正在尝试学习使用matplotlib,并按照教程绘制散点图,在散点图中指定点的大小。() 我使用命令matplotlib散点在ipython笔记本中工作,但在控制台中不工作,python,matplotlib,ipython,ipython-notebook,Python,Matplotlib,Ipython,Ipython Notebook,我正在尝试学习使用matplotlib,并按照教程绘制散点图,在散点图中指定点的大小。() 我使用命令ipython--pylab在Mac OS X上运行ipython,并得到以下错误 AttributeError Traceback (most recent call last) /Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/m
ipython--pylab
在Mac OS X上运行ipython,并得到以下错误
AttributeError Traceback (most recent call last)
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/figure.pyc in draw(self, renderer)
1048 dsu.sort(key=itemgetter(0))
1049 for zorder, a, func, args in dsu:
-> 1050 func(*args)
1051
1052 renderer.close_group('figure')
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/axes/_base.pyc in draw(self, renderer, inframe)
2074
2075 for zorder, a in dsu:
-> 2076 a.draw(renderer)
2077
2078 renderer.close_group('axes')
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/collections.pyc in draw(self, renderer)
733 def draw(self, renderer):
734 self.set_sizes(self._sizes, self.figure.dpi)
--> 735 Collection.draw(self, renderer)
736
737
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/collections.pyc in draw(self, renderer)
305 self._linewidths, self._linestyles,
306 self._antialiaseds, self._urls,
--> 307 self._offset_position)
308
309 gc.restore()
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/backends/backend_macosx.pyc in draw_path_collection(self, gc, master_transform, paths, all_transforms, offsets, offsetTrans, facecolors, edgecolors, linewidths, linestyles, antialiaseds, urls, offset_position)
77 path_ids.append((path, transform))
78 master_transform = master_transform.get_matrix()
---> 79 all_transforms = [t.get_matrix() for t in all_transforms]
80 offsetTrans = offsetTrans.get_matrix()
81 gc.draw_path_collection(master_transform, path_ids, all_transforms,
AttributeError: 'numpy.ndarray' object has no attribute 'get_matrix'
但是,如果我在一个ipython笔记本中运行相同的代码,该笔记本使用命令ipython notebook--pylab=inline
启动,它工作正常
如何从控制台执行此操作
其他信息:
- 我在控制台和ipython上运行相同版本的numpy 笔记本:numpy.版本='1.9.0.dev-7457f15'
- 操作系统是OSX 10.8.5
- 如果我使用
而不是ipython
运行,我会得到相同的结果 错误ipython--pylab
- Python 2.7.5(默认值,2013年10月13日,13:05:22)
- IPython 2.0.0-dev
谢谢看起来这是
matplotlib
端的后端问题。查看错误消息的最后一部分。它表示macosx
后端
中存在不正确的情况,该后端用作OSX
环境中的交互式后端
它在内联模式下工作的原因:pylab=inline
证实了这一点。与内联模式一样,不是交互式后端,而是一个非交互式后端(最有可能是inline
backend)。所以,它起作用了
解决方案可能是@Matt建议的,切换到稳定版本的matplotlib
检查两个解释器中的numpy(numpy.\uuu version\uuu
)版本是否相同。请提供您通常使用的所有软件的验证。OSX(和Maverick甚至更多)使用Python做一些奇怪的事情,尤其是numpy。也可以尝试使用稳定的Matplotlib。添加你的OSX版本(10.8版Montain Lion),即使在这里你可以从追踪中猜到它,也不是每个人都愿意去搜索。最后,我们试图说服人们不要使用——pylab
,它有不良的副作用。在IPython 1.0及更高版本上,如有必要,最好使用显式导入和%matplotlib inline
。谢谢Matt。我尝试使用ipython
而不是ipython--pylab
,但得到了相同的错误。我还尝试使用了python
,同样出现了相同的错误。(详细信息,但对于开发版本,您可能希望给出确切的提交import-IPython:print-IPython.sys\u-info()
。您也在numpy dev上,请尝试numpy stable。然后我们可能还可以测试--pylab=qt
或gtk
来确认这一点。感谢您的解释和帮助,@Matt&@CT Zhu!我不知道我的版本不稳定。在使用pip install numpy重新安装后--升级pip install scipy--升级sudo pip install matplotlib--升级sudo-pip-install-ipython--升级sudo-pip-install-pandas--升级sudo-pip-install-sympy--升级sudo-pip-install-nose--升级
一切都很好
AttributeError Traceback (most recent call last)
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/figure.pyc in draw(self, renderer)
1048 dsu.sort(key=itemgetter(0))
1049 for zorder, a, func, args in dsu:
-> 1050 func(*args)
1051
1052 renderer.close_group('figure')
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/axes/_base.pyc in draw(self, renderer, inframe)
2074
2075 for zorder, a in dsu:
-> 2076 a.draw(renderer)
2077
2078 renderer.close_group('axes')
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/collections.pyc in draw(self, renderer)
733 def draw(self, renderer):
734 self.set_sizes(self._sizes, self.figure.dpi)
--> 735 Collection.draw(self, renderer)
736
737
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/collections.pyc in draw(self, renderer)
305 self._linewidths, self._linestyles,
306 self._antialiaseds, self._urls,
--> 307 self._offset_position)
308
309 gc.restore()
/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.8-intel.egg/matplotlib/backends/backend_macosx.pyc in draw_path_collection(self, gc, master_transform, paths, all_transforms, offsets, offsetTrans, facecolors, edgecolors, linewidths, linestyles, antialiaseds, urls, offset_position)
77 path_ids.append((path, transform))
78 master_transform = master_transform.get_matrix()
---> 79 all_transforms = [t.get_matrix() for t in all_transforms]
80 offsetTrans = offsetTrans.get_matrix()
81 gc.draw_path_collection(master_transform, path_ids, all_transforms,
AttributeError: 'numpy.ndarray' object has no attribute 'get_matrix'