从seaborn散点图色调检索颜色标签贴图

2024-06-07 08:48:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码来绘制我的seaborn散点图

plt.figure(figsize=(120,120))
p1 = sn.scatterplot('tsne1', # Horizontal axis
       'tsne2', # Vertical axis
       data=data, # Data source
       hue='label',
       size = 30,
       legend=False)  

for line in range(0,data.shape[0]):
     p1.text(data.tsne1[line]+0.01, data.tsne2[line], 
     data.label[line], horizontalalignment='left', 
     size='medium', color='black', weight='semibold')

绘制散点图后,我在数据上循环,以便在其数据点旁边显示文本标签。目前,我的文本显示为黑色,但我希望以正确的颜色显示

如何检索标签和seaborn选择的色调之间的映射,以便在显示文本时重用颜色


Tags: 数据代码文本datasize颜色line绘制
1条回答
网友
1楼 · 发布于 2024-06-07 08:48:43

您可以使用sns.color_palette设置调色板,如果标签是数字的,则只需将其调出:

from sklearn.datasets import make_blobs
import seaborn as sns

X, y = make_blobs(n_samples=100, centers=5, shuffle=False,random_state=42)
data = pd.DataFrame(X,columns=['tsne1','tsne2'])
data['label'] = y

pal = sns.color_palette("hls",len(data['label'].unique()))

p1 = sns.scatterplot('tsne1', # Horizontal axis
                     'tsne2', # Vertical axis
                     data=data, # Data source
                     hue='label',
                     legend=False,
                     palette=pal)

for line in range(0,data.shape[0]):
    p1.text(data.tsne1[line]+0.01, data.tsne2[line], 
            data.label[line], horizontalalignment='left', 
            size='medium', color=pal[data.label[line]], weight='semibold')

enter image description here

相关问题 更多 >

    热门问题