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

Matplotlib中2个离散值场景下colorbar不显示刻度标签问题

解决方案

该问题是由于imshow默认自动适配数组值范围时,极值刚好贴合colorbar边界导致刻度标签被截断,显式指定imshow的vmin、vmax参数固定颜色映射范围即可解决。

最简修复代码

import numpy as np
from matplotlib import pyplot as plt

img_data2 = np.random.choice([0,1], size=100).reshape((10,10))

# 显式固定颜色映射的取值范围
plt.imshow(img_data2, vmin=0, vmax=1)
plt.colorbar(ticks = [0,1])
plt.show()

优化显示方案

如果希望每个离散值对应独立的完整色阶块,避免刻度贴边,可以将范围向两侧各延伸0.5个单位:

plt.imshow(img_data2, vmin=-0.5, vmax=1.5)
plt.colorbar(ticks=[0,1])

该方案同样适用于更多离散值的场景,只需将vmin设为最小离散值减0.5,vmax设为最大离散值加0.5即可,无需修改colorbar的ticks配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:12:03