Легенда о морском разбросе не показывается - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь построить некоторые данные с помощью следующего кода

from sklearn.datasets import make_blobs
import seaborn as sns
import numpy as np

X, y = make_blobs(n_samples=1000, n_features=2, centers=10, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)

palette = np.array(sns.color_palette("bright", 10))  #Chossing color  
sns.scatterplot(X[:,0],X[:,1],legend='full',c=palette[y])

enter image description here

Цвет красивый, но легенда отсутствует.Когда я проверяю документацию, я вижу:

Как нарисовать легенду.Если «кратко», то числовые hue и size переменные ....

Так что, похоже, мне также нужно включить hue аргументНо когда я пытаюсь аргумент hue со следующими кодами, вместо этого создается следующий график ...

sns.scatterplot(X[:,0],X[:,1],legend='full',hue=y,c=palette[y])

enter image description here

Легендапоказывая, но цвет не то, что я хочу.После добавления аргумента hue кажется, что он перезаписывает аргумент палитры.Неважно, какую палитру я выберу, цвет все равно ужасен ...

Мой вопрос: Как показать легенду, сохраняя нужный мне цвет?

1 Ответ

0 голосов
/ 22 сентября 2018

Вам нужно будет использовать palette kwarg и указать оттенки с вашими значениями y.

from sklearn.datasets import make_blobs
import seaborn as sns
import matplotlib.pyplot as plt

X, y = make_blobs(n_samples=1000, n_features=2, centers=10, cluster_std=1.0,
                  center_box=(-10.0, 10.0), shuffle=True, random_state=None)

palette = sns.color_palette("bright", 10)  #Choosing color
sns.scatterplot(X[:, 0], X[:, 1], palette=palette, hue=y, legend='full')
plt.show()

enter image description here

...