matplotlib scatter Valueerror: 'c' argument has n elements, which is not acceptable for use with 'x' and 'y' with size m

matplotlib scatter Valueerror: 'c' argument has n elements, which is not acceptable for use with 'x' and 'y' with size m

我正在尝试在 Python (Jupyter Notebook) 上使用 matplotlib 散点图来创建 t-sne 可视化,不同的点使用不同的颜色。

我很惭愧地承认我大部分都是借用了预先编写的代码,所以有些细微差别我无法理解。但是,我 运行 遇到了一个我似乎无法解决的 ValueError(即使在查看了在 Stack Overflow 上询问的类似 ValueErrors 实例的解决方案之后)。

运行 scatter(相关代码在这里) returns ValueError: RGBA sequence should have length 3 or 4;尽管这显然是由 ValueError: 'c' 参数有 470000 个元素直接引起的,这与大小为 2500 的 'x' 和 'y' 不一致。

if __name__ == "__main__":
    print("Run Y = tsne.tsne(X, no_dims, perplexity) to perform t-SNE on your dataset.")
    print("Running example on ECG samples...")
    X = np.loadtxt("ecg_test_tsne_randomremoved_tagremoved.txt")
    labels = np.loadtxt("ecg_test_tsne_randomremoved_tagremoved.txt")
    Y = tsne(X, 2, 50, 20.0)
    pylab.scatter(Y[:, 0], Y[:, 1], 20, labels)
    pylab.show()

这里,txt 文件是包含所有数据的文件。 完整的代码是 van der Maaten 的 Python 实现的逐字记录,如有必要,可提供 here

此外,它指出映射和 RGBA 转换都失败了(非常严重的失败),并且可能需要详细的反馈。

我对这种状态感到非常困惑,因为即使在阅读了其他出现此 ValueError 的解决方案之后(如 Stack Overflow 中所述),我对如何格式化“标签”以便c 可能匹配 x 和 y。

pyplot.scatter 的第 4 个参数是一种颜色或一组颜色,而不是标签。 scatter 没有标签参数。我将完全删除第 4 个参数。