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
结果看起来像情节:
我问了一个愚蠢的问题,但我找不到遮阳棚。我正在尝试使用 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
结果看起来像情节: