You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Seaborn默认调色板仅保留指定聚类颜色,其余全部置灰

Seaborn散点图保留指定聚类默认配色的实现方案

你可以通过预先获取Seaborn默认分配给每个聚类的颜色映射,仅将非目标聚类的颜色替换为灰色,即可在不改变目标聚类原生配色的前提下满足需求,具体实现代码如下:

import seaborn as sns

# 按升序排列所有聚类取值,与Seaborn默认的hue排序规则保持一致
all_clusters = sorted(df_opentsne['cluster'].unique())
# 获取和聚类数量匹配的Seaborn默认调色板
default_palette = sns.color_palette(n_colors=len(all_clusters))
# 建立聚类取值到对应默认颜色的映射
cluster_default_color = dict(zip(all_clusters, default_palette))

# 定义需要保留原生配色的目标聚类
target_cluster = 14
# 构造自定义调色板:目标聚类用默认色,其余聚类统一设为深灰
custom_palette = {
    cluster: cluster_default_color[cluster] if cluster == target_cluster else 'darkgrey'
    for cluster in all_clusters
}

# 绘图时传入自定义调色板即可
sns.scatterplot(
    x='X',
    y='Y',
    hue='cluster',
    style='cluster',
    data=df_opentsne,
    legend=None,
    palette=custom_palette
)

实现说明

Seaborn对hue参数分配颜色时,会自动对hue的取值做升序排序,再按顺序匹配默认调色板的颜色。因此我们提前对聚类取值排序后生成的颜色映射,和原生绘图的配色完全一致,仅修改非目标聚类的颜色即可实现需求,不会改变目标聚类的原有默认配色。

内容的提问来源于stack exchange,提问作者David Hernandez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:15:03