Я пытаюсь построить диаграмму рассеяния, используя matplotlib / seaborn:
plt.figure(figsize=(16,10))
sns.scatterplot(
x=[i[0] for i in tsne_data],
y=[i[1] for i in tsne_data],
alpha=0.3,
color=label_colors
)
Я получаю сообщение об ошибке:
ValueError: 'c' argument has 267794 elements, which is not acceptable for use with 'x' with size 0, 'y' with size 0.
Мои данные:
label_colors
- список Python с 267 794 элементами. Каждый элемент представляет собой строку, например, «красный», «синий», «фиолетовый». tsne_data
- двумерный массив Numpy с 267 794 элементами. Каждый элемент имеет координату оси, у, например [ 9.417695 , -25.48891 ]
. В форме (267794, 2).
Я не могу понять, почему я получаю эту ошибку, особенно почему «x» и «y» не распознаются как имеющие какую-либо длину. Я попытался сделать это с pandas фреймом данных, где у меня есть столбцы 'x' и 'y', затем я установил x=df['x']
или x=list(df['x'])
, но я получаю ту же ошибку. Как я могу построить мой tsne_data
так, чтобы каждая из его 267 794 точек была окрашена цветом, указанным в соответствующем индексе в label_colors
?