【问题标题】:python - error while using matplotlib.pyplot.scatter function for the first timepython - 第一次使用 matplotlib.pyplot.scatter 函数时出错
【发布时间】:2013-12-26 20:40:12
【问题描述】:

我只是想第一次开始使用 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 包开始学习。

你能给我一些关于如何克服这个错误的建议吗?

【问题讨论】:

  • 基本上是__repr__的输出,见thisthis
  • 我会推荐 np.isfinite 代替 ~np.isnan

标签: python matplotlib


【解决方案1】:

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

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

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

或者如果你希望它是交互式的,在你的.matplotlibrc中设置interactive: Truesuggested

另外,Python 中的行尾不需要分号。

【讨论】:

  • 但是我不应该收到绘图窗口吗?或者我该如何打开它?
  • 我正在使用iep ide。我应该如何继续查看绘图窗口?
  • 谢谢你。
【解决方案2】:

如 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() 才能实际渲染绘图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    相关资源
    最近更新 更多