如何在matplotlib中将离散colormap转换为连续colormap?
你可以直接使用matplotlib内置的LinearSegmentedColormap.from_list()方法完成转换,无需引入第三方依赖:
完整实现代码
import matplotlib.colors as colors # 定义原始离散色卡 cm_d = colors.ListedColormap(["#ffffff", "#ffcdcd", "#ff989b", "#ff6669", "#ff1818", "#d20000", "#a30002", "#720001", "#500002", "#670061", "#5e1a8b", "#3d0064", "#555555", "#343434", "#000000"]) # 转换为连续色卡:参数分别为自定义色卡名称、原始离散色值列表、连续色阶的细分数量(默认256满足绝大多数场景需求) cm_c = colors.LinearSegmentedColormap.from_list("custom_continuous_cmap", cm_d.colors, N=256)
效果对比
- 原始离散colormap(cm_d)效果:

- 转换后连续colormap(cm_c)效果:

可选调整
如果你需要自定义不同颜色段的渐变占比,可以给from_list的第二个参数传入[(锚点位置, 色值)]格式的元组列表,锚点位置取值范围为0~1,默认会按照你给出的离散色顺序均匀设置锚点。
内容的提问来源于stack exchange,提问作者Aqua
相关产品推荐
相关产品推荐

