1

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

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

运行散点图(此处的相关代码)返回 ValueError:RGBA 序列的长度应为 3 或 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 实现,如有必要,可在此处获得。

此外,它指出映射和 RGBA 转换都失败了(相当严重的失败),人们可能会喜欢详细的反馈。

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

4

1 回答 1

2

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

于 2021-10-30T03:19:50.230 回答