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

如何在保留映射的前提下调暗/调亮自定义Seaborn调色板

调整自定义Seaborn调色板亮度的方法

你可以通过转换颜色的HSV色彩空间,调整明度(Value)通道来整体调暗或调亮调色板,同时完全保留原有的类型-颜色映射关系。以下是具体实现步骤:

核心思路

将所有颜色从RGB格式转换为HSV格式,调整V值(小于1调暗,大于1调亮,注意不要超过1),再转换回RGB格式,最后生成新的调色板字典。

完整代码示例

import seaborn as sns
import matplotlib.colors as mcolors
import matplotlib.pyplot as plt

# 原自定义调色板
pkmn_type_colors_palette = {
    'Grass': '#78C850',
    'Fire': '#F08030',
    'Water': '#6890F0',
    'Bug': '#A8B820',
    'Normal': '#A8A878',
    'Poison': '#A040A0',
    'Electric': '#F8D030',
    'Ground': '#E0C068',
    'Fairy': '#EE99AC',
    'Fighting': '#C03028',
    'Psychic': '#F85888',
    'Rock': '#B8A038',
    'Ghost': '#705898',
    'Ice': '#98D8D8',
    'Dragon': '#7038F8',
    'Dark': sns.xkcd_rgb['dark indigo'],
    'Flying': sns.xkcd_rgb['sky'],
    'Steel': sns.xkcd_rgb['steel'],
}

# 定义亮度调整函数
def adjust_palette_brightness(palette, factor):
    """
    调整调色板的整体亮度
    :param palette: 原调色板字典
    :param factor: 亮度系数,<1调暗,>1调亮(建议范围0.2-1.8)
    :return: 调整后的新调色板
    """
    new_palette = {}
    for type_name, color in palette.items():
        # 将颜色转换为RGB浮点值(0-1)
        rgb = mcolors.to_rgb(color)
        # 转HSV
        h, s, v = mcolors.rgb_to_hsv(rgb)
        # 调整明度,确保不超过1
        new_v = min(v * factor, 1.0)
        # 转回RGB
        new_rgb = mcolors.hsv_to_rgb((h, s, new_v))
        # 转十六进制格式
        new_palette[type_name] = mcolors.to_hex(new_rgb)
    return new_palette

# 生成调暗50%的调色板(factor=0.5)
dimmed_palette = adjust_palette_brightness(pkmn_type_colors_palette, 0.5)
# 生成调亮20%的调色板(factor=1.2)
brightened_palette = adjust_palette_brightness(pkmn_type_colors_palette, 1.2)

# 测试画图(以调暗版本为例)
sns.violinplot(x='Type1', hue='Type1', y='Defense', data=poke_df, palette=dimmed_palette)
plt.show()

关键说明

  • factor参数:取值小于1时会降低亮度(调暗),大于1时提高亮度(调亮),建议控制在0.2到1.8之间,避免颜色失真。
  • 兼容性:不管原调色板中的颜色是十六进制字符串还是xkcd颜色名,mcolors.to_rgb()都能统一转换为标准RGB格式,确保所有颜色都能被正确调整。
  • 映射保留:新调色板的键(宝可梦类型)和原字典完全一致,不会破坏原有的类型-颜色对应关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:17:17