Python3.9中如何从LinearSegmentedColormap对象提取设置的颜色
提取LinearSegmentedColormap中的设置颜色
LinearSegmentedColormap没有colors属性,但可以通过以下两种方式提取你创建时设置的颜色:
方法1:读取内部分段数据
LinearSegmentedColormap通过_segmentdata属性存储颜色映射的分段定义,你可以从中直接提取原始控制点的RGB值:
# 获取红、绿、蓝三通道的分段信息 red_segments = color1._segmentdata['red'] green_segments = color1._segmentdata['green'] blue_segments = color1._segmentdata['blue'] # 提取每个控制点的归一化RGB值 original_colors = [] for r, g, b in zip(red_segments, green_segments, blue_segments): # 每个分段元组的第三个元素是该点的颜色值 original_colors.append((r[2], g[2], b[2]))
由于你是用from_list创建的映射,_segmentdata中的控制点数量和你输入的颜色数量完全匹配,结果就是你传入的归一化颜色值。
方法2:采样对应数量的颜色点
通过生成与输入颜色数量一致的均匀采样点,可得到经过gamma校正后的颜色(你设置了gamma=1.0,结果与原始输入一致):
import numpy as np # 生成5个采样点(对应创建时的5种颜色) sampled_colors = color1(np.linspace(0, 1, 5)) # 移除alpha通道(如果不需要) sampled_colors = sampled_colors[:, :3]
这种方法更贴近颜色映射的实际输出效果,适合验证整体颜色趋势。
内容的提问来源于stack exchange,提问作者Micah Pearce
相关产品推荐
相关产品推荐

