贝利信息

matplotlib 如何让 colorbar 只显示整数刻度且字体大小合适

日期:2026-01-20 00:00 / 作者:冰川箭仙
Matplotlib中colorbar显示整数刻度并调字体大小,需用cbar.set_ticks()设整数位置、cbar.set_ticklabels()转字符串标签,并用cbar.ax.tick_params(labelsize=10)统一调字号。

在 Matplotlib 中让 colorbar 只显示整数刻度并控制字体大小,关键在于手动设置刻度位置(set_ticks)和标签格式(set_ticklabels),同时用 tick_paramsfontsize 参数调整字体大小。

指定整数刻度位置

colorbar 本质是一个 Axes 对象,可通过 cbar.ax 获取其轴对象。先确定数据范围,再生成整数序列作为刻度位置:

确保刻度标签为整数且无小数点

即使刻度位置是整数,Matplotlib 有时仍会显示如 2.0。可显式设置字符串标签:

调整字体大小

有两种常用方式,推荐后者更直接:

完整示例代码

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randint(0, 10, (2

0, 20)) im = plt.imshow(data, cmap='viridis') cbar = plt.colorbar(im) vmin, vmax = data.min(), data.max() ticks = np.arange(int(np.floor(vmin)), int(np.ceil(vmax)) + 1) cbar.set_ticks(ticks) cbar.set_ticklabels([f"{int(x)}" for x in ticks]) cbar.ax.tick_params(labelsize=10) plt.show()