python - 第一次使用matplotlib.pyplot.scatter函数时出错

时间:2013-12-09 16:34:22

标签: python matplotlib

我只是想第一次开始使用matplotlib库。

所以我输入以下命令:

import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
data = sp.genfromtxt("web_traffic.tsv", delimiter = "\t");
x = data[:, 0];
y = data[:, 1];
x = x[~sp.isnan(y)];
y = y[~sp.isnan(y)];
plt.scatter(x, y);

我收到了以下错误:

<matplotlib.collections.PathCollection object at 0x246abd0>

我不知道造成这种情况的原因是什么,我刚刚安装了所需的软件包,scipymatplotlib并且它返回给我这个特定的错误。我尝试谷歌但没有结果。

我使用openSuse作为操作系统,默认情况下是python。我的主要目的是使用scykit learn包开始学习。

你能就如何克服这个错误给我任何建议吗?

2 个答案:

答案 0 :(得分:10)

这不是错误消息。它是对象的字符串表示。

如果您在交互式shell中运行上面的代码,那么您看到的是plt.scatter函数返回的值的字符串表示。

要实际打开窗口,通常需要在最后调用plt.show()

或者,如果您希望它是互动式的,则interactive: True设置.matplotlibrcsuggested

在一个不相关的说明中,在Python的行尾不需要分号。

答案 1 :(得分:1)

如plt.scatter()的matplotlib示例所示:

"""
Simple demo of a scatter plot.
"""
import numpy as np
import matplotlib.pyplot as plt


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radiuses

plt.scatter(x, y, s=area, alpha=0.5)
plt.show()

如前所述,您必须调用plt.show()来实际渲染图。