Matplotlib中colorbar显示整数刻度并调字体大小,需用cbar.set_ticks()设整数位置、cbar.set_ticklabels()转字符串标签,并用cbar.ax.tick_params(labelsize=10)统一调字号。
在 Matplotlib 中让 colorbar 只显示整数刻度并控制字体大小,关键在于手动设置刻度位置(set_ticks)和标签格式(set_ticklabels),同时用 tick_params 或 fontsize 参数调整字体大小。
colorbar 本质是一个 Axes 对象,可通过 cbar.ax 获取其轴对象。先确定数据范围,再生成整数序列作为刻度位置:
np.arange(int(vmin), int(vmax)+1) 生成从最小整数到最大整数的数组int(np.floor(vmin)) 和 int(np.ceil(vmax)) 更稳妥cbar.set_ticks(ticks) 设置刻度位置即使刻度位置是整数,Matplotlib 有时仍会显示如 2.0。可显式设置字符串标签:
cbar.set_ticklabels([str(int(x)) for x in ticks])cbar.set_ticklabels([f"{int(x)}" for x in ticks])
FormatStrFormatter('%d')(对 colorbar 的 tick formatter 支持不稳定)有两种常用方式,推荐后者更直接:
cbar.ax.tick_params(labelsize=12) 统一设置刻度标签字号cbar.ax.get_yticklabels() 并调用 set_fontsize(12)
orientation='horizontal'),则用 get_xticklabels() 和 tick_params(axis='x', labelsize=12)
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randint(0, 10, (20, 20))
im = plt.imshow(data, cmap='viridis')
cbar = plt.colorbar(im)
vmin, vmax = data.min(), data.max()
ticks =
