IDLE和matplotlib

时间:2013-12-19 12:04:46

标签: python matplotlib

如果我在Ipython笔记本中输入此代码,它可以工作:

plt.scatter(x,y)

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

<matplotlib.collections.PathCollection object at 0x0000000007957908>

你知道为什么吗?

非常感谢。

2 个答案:

答案 0 :(得分:4)

在pylab模式下使用IPython时,使用matplotlib绘制内容后绘图会自动生成。如果您在闲置的地方工作,则必须plt.show您的图像:

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()

如果您想自动绘制空闲状态,可以使用交互模式:

>>> 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)

答案 1 :(得分:0)

一个答案:正确阅读文档

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

试试这个:

result = plt.scatter(x,y)

并使用result执行任何操作。如果您不想学习使用结果对象,请正确阅读文档。如果你还是不明白退后一步,那就做dir(result)并尝试一下你遇到的每个变量,功能和类......