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

如何为Seaborn热力图自定义cmap配色方案?

自定义Seaborn热力图的配色方案

嘿,你完全不用被Seaborn预设的cmap选项限制住!因为Seaborn底层依赖Matplotlib的色彩系统,咱们可以轻松创建自己的渐变配色映射,精准设置最小值和最大值对应的颜色。

下面是具体的实现步骤:

  1. 导入必要的库
    除了Seaborn和Matplotlib的pyplot,还需要用到Matplotlib的LinearSegmentedColormap类来创建自定义配色:

    import seaborn as sns
    import matplotlib.pyplot as plt
    from matplotlib.colors import LinearSegmentedColormap
    
  2. 创建自定义色彩映射
    使用LinearSegmentedColormap.from_list()方法,你只需要给这个自定义配色起个名字,然后传入包含起始(最小值)和结束(最大值)颜色的列表即可:

    # 定义从深红色(#A43E28)到深蓝色(#144DB0)的渐变
    custom_cmap = LinearSegmentedColormap.from_list("custom_heatmap", ["#A43E28", "#144DB0"])
    
  3. 在热力图中使用自定义配色
    直接把创建好的custom_cmap传入sns.heatmap()的cmap参数就搞定了:

    # 假设df是你的目标数据框
    sns.heatmap(df, cmap=custom_cmap, annot=True)  # annot=True可选,用来显示单元格数值
    plt.show()
    

进阶:添加中间过渡色

如果你想要更平滑的渐变效果,还可以在颜色列表中加入中间过渡色,比如浅灰色#F5F5F5:

custom_cmap = LinearSegmentedColormap.from_list("custom_heatmap", ["#A43E28", "#F5F5F5", "#144DB0"])

这样热力图的颜色会从深红过渡到浅灰,再到深蓝,视觉效果会更自然。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:50:36