首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IDLE和matplotlib

IDLE和matplotlib
EN

Stack Overflow用户
提问于 2013-12-19 20:04:46
回答 2查看 12.6K关注 0票数 0

如果我在Ipython notebook中输入以下代码,它将正常工作:

代码语言:javascript
复制
plt.scatter(x,y)

但是如果在python IDLE中输入它,那么我会得到这个错误:

代码语言:javascript
复制
<matplotlib.collections.PathCollection object at 0x0000000007957908>

你知道为什么吗?

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2013-12-19 20:10:48

当你在pylab模式下使用IPython时,在你用matplotlib绘制一些东西之后,绘图是自动的。这不是你在idle中工作时的情况,在那里你必须plt.show你的图像:

代码语言:javascript
复制
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information.
>>> from matplotlib import pyplot as plt
>>> x = [1,3,6,2]
>>> y = [4,6,7,8]
>>> plt.scatter(x,y)
<matplotlib.collections.PathCollection object at 0x0000000005A6B7B8>
>>> plt.show()

如果您想使用idle自动绘图,您可以使用交互模式:

代码语言:javascript
复制
>>> from matplotlib import pyplot as plt
>>> from matplotlib import interactive
>>> interactive(True)
>>> x = [1,3,6,2]
>>> y = [4,6,7,8]
>>> plt.scatter(x,y)
<matplotlib.collections.PathCollection object at 0x0000000005D11BA8>
(the figure is drawn)
票数 5
EN

Stack Overflow用户

发布于 2013-12-19 20:08:41

一个答案:正确地阅读文档

这不是一个错误,它只是告诉你plt.scatter(x,y)返回了什么…这基本上意味着plt.scatter(x,y)的结果是一个<matplotlib.collections.PathCollection object at 0x0000000007957908>

试试这个:

代码语言:javascript
复制
result = plt.scatter(x,y)

result做任何你想做的事。如果您不想学习使用result对象,请正确阅读文档。如果你仍然不理解,退后一步,做dir(result),尝试一下你遇到的每个变量、函数和类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20681345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档