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

如何在Matplotlib中创建从黑到自定义颜色再到白的简单颜色映射

在Matplotlib中创建黑-自定义色-白的颜色映射

你可以用Matplotlib的LinearSegmentedColormap类构建这种三段过渡的自定义颜色映射,步骤如下:

1. 导入依赖库

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap, to_rgb
import numpy as np

2. 定义颜色节点

设定三个关键颜色:最小值对应黑色,中间过渡到你指定的自定义颜色,最大值对应白色。如果用十六进制颜色,可通过to_rgb()转换成0-1范围的RGB值。

示例(自定义颜色选#2ecc71清新绿):

# 转换十六进制颜色为RGB(可选)
custom_color = to_rgb("#2ecc71")
# 定义颜色序列:黑 → 自定义色 → 白
colors = [
    (0, 0, 0),       # 黑色,对应数值0
    custom_color,    # 自定义颜色,默认对应数值0.5
    (1, 1, 1)        # 白色,对应数值1
]

3. 创建自定义颜色映射

用from_list()方法生成颜色映射,指定名称和颜色数量(N越大过渡越平滑):

cmap = LinearSegmentedColormap.from_list("black_custom_white", colors, N=256)

4. 调整自定义颜色的位置(可选)

如果想让自定义颜色更靠近最小值或最大值,可显式指定每个颜色对应的数值位置:

# 示例:自定义色在数值0.3的位置(更靠近最小值)
colors_with_pos = [
    (0, (0, 0, 0)),
    (0.3, custom_color),
    (1, (1, 1, 1))
]
cmap = LinearSegmentedColormap.from_list("black_custom_white", colors_with_pos, N=256)

5. 测试颜色映射

用示例数据验证效果:

# 生成从0到1的渐变测试数据
data = np.linspace(0, 1, 100).reshape(10, 10)

# 绘制热力图并显示颜色条
plt.imshow(data, cmap=cmap)
plt.colorbar(label="数值范围")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:00:07