Matplotlib colorbar 使用科学记数法时的刻度格式

Matplotlib colorbar ticks format when using scientific notation

我问了一个愚蠢的问题,但我找不到遮阳棚。我正在尝试使用 matplotlib 向图像添加颜色条。当我尝试格式化颜色条的刻度时,问题就来了。我想要一个科学记数法格式,但同时控制刻度中的小数位数。例如,使用此代码:

#format the colorbar ticks labels
sfmt=ticker.ScalarFormatter(useMathText=True) 
sfmt.set_powerlimits((0, 0))

cb1=fig1.colorbar(imp,
              cax=axcbar,
              orientation="vertical",
              ticks=np.linspace(1.03*np.min(imest),0.97*np.max(imest),4),
              format=sfmt)
cb1.set_label(r'$kg/s.m^2$')

我创建了这个图:

我希望刻度中只有一位小数(即 5.210 --> 5.2)。这可能以简单的方式实现吗?我试了很多东西都没有成功。

提前致谢。

您可以从

更改刻度的数组
ticks = np.linspace(1.03*np.min(imest),0.97*np.max(imest),4)

类似于:

ticks = np.arange(2.2, 6.2, 1) * 1e6

结果看起来像情节: