我正在尝试使用以下代码绘制一些数据
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])
颜色很漂亮,但是没有图例。 当我查看文档时,看到:
如何绘制图例。如果为“简要”,则为数字
hue
和size
变量 ....
因此,似乎还需要包含hue
参数。
但是,当我使用以下代码尝试使用hue
参数时,将创建以下图形...
sns.scatterplot(X[:,0],X[:,1],legend='full',hue=y,c=palette[y])
正在显示图例,但颜色不是我想要的。添加hue
参数后,似乎它覆盖了调色板参数。不管我选择什么调色板,颜色仍然很难看……
我的问题是: 如何在保持我想要的颜色的同时显示图例?
答案 0 :(得分:2)
您需要使用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()