我只是想第一次开始使用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>
我不知道造成这种情况的原因是什么,我刚刚安装了所需的软件包,scipy
,matplotlib
并且它返回给我这个特定的错误。我尝试谷歌但没有结果。
我使用openSuse作为操作系统,默认情况下是python。我的主要目的是使用scykit learn
包开始学习。
你能就如何克服这个错误给我任何建议吗?
答案 0 :(得分:10)
这不是错误消息。它是对象的字符串表示。
如果您在交互式shell中运行上面的代码,那么您看到的是plt.scatter
函数返回的值的字符串表示。
要实际打开窗口,通常需要在最后调用plt.show()
。
或者,如果您希望它是互动式的,则interactive: True
设置.matplotlibrc
为suggested。
在一个不相关的说明中,在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()来实际渲染图。