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

Matplotlib中如何为单独生成的Colorbar添加自定义刻度标签?

解决Matplotlib独立Colorbar刻度标签设置问题

你的核心问题是误用了方法调用方式——直接把标签列表赋值给set_ticklabels/set_yticklabels属性,而非调用这些方法并传入参数。以下是修正后的代码:

import matplotlib.pyplot as plt
import matplotlib as mpl

fig, ax = plt.subplots(figsize=(3,8))
cmap = mpl.cm.inferno
bounds = [0,1,2,3,4,5]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)

# 生成colorbar并保存实例
mycb = fig.colorbar(
    mpl.cm.ScalarMappable(cmap=cmap, norm=norm),
    ticks=[0.5,1.5,2.5,3.5,4.5],
    cax=ax)

# 正确调用方法设置刻度标签
mycb.set_ticklabels(["A", "B", "C", "D", "E"])
# 也可通过colorbar的轴对象设置,效果一致
# mycb.ax.set_yticklabels(["A", "B", "C", "D", "E"])

plt.show()

关键说明

  • set_ticklabels()是Colorbar对象的方法,必须传入标签列表作为参数,不能直接赋值给该属性。
  • 通过mycb.ax获取colorbar对应的轴对象,调用set_yticklabels()也能实现相同效果。
  • 要保证ticks参数的数量和标签列表长度一致,避免出现刻度与标签不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:50:49