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

如何在Matplotlib中创建指定样式的自定义颜色条?

用Matplotlib创建三段式纯色颜色条

需求:创建一个水平颜色条,包含红色、青色、深绿色三个等宽的纯色块,数值范围对应3.5到4.5。

原代码的分段逻辑有误,修正后的实现如下:

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.cm import ScalarMappable
from matplotlib.colors import Normalize

# 定义三段式纯色映射:0-1/3为红色,1/3-2/3为青色,2/3-1为深绿色
colors = ['red', 'cyan', 'darkgreen']
cmap = LinearSegmentedColormap.from_list(
    'custom_colormap', 
    [(0.0, colors[0]), (1/3, colors[0]),
     (1/3, colors[1]), (2/3, colors[1]),
     (2/3, colors[2]), (1.0, colors[2])]
)

# 创建颜色映射对应的数值映射,范围3.5到4.5
sm = ScalarMappable(norm=Normalize(vmin=3.5, vmax=4.5), cmap=cmap)

# 绘制水平颜色条,设置刻度在色块分界处
plt.figure(figsize=(6, 1))
cb = plt.colorbar(sm, orientation='horizontal', ticks=[3.5, 4.0, 4.5], extend='neither')
cb.set_label('')
plt.show()

关键修正说明:

  • 颜色映射的分段点调整为1/3和2/3,确保三个色块等宽覆盖0-1的归一化范围,对应数值3.5-4.0、4.0-4.5的区间。
  • 刻度设置为[3.5, 4.0, 4.5],让刻度线精准对应色块的边界。
  • 调整figure宽度为6,让颜色条显示更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:43:19