此问题在此处已有答案:
Scientific notation colorbar(4个答案)
三个月前就关门了。
我在matplotlib中有一个等高线图,它使用了一个由
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(axe) #adjust colorbar to fig height
cax = divider.append_axes("right", size=size, pad=pad)
cbar = f.colorbar(cf,cax=cax)
cbar.ax.yaxis.set_offset_position('left')
cbar.ax.tick_params(labelsize=17)#28
t = cbar.ax.yaxis.get_offset_text()
t.set_size(15)
字符串
的数据
我如何改变颜色条ticklabels(指数的尾数)显示只有2位数字后的'.'而不是3(保持偏置符号)?是否有可能或我必须手动设置刻度?
我尝试使用str格式化程序
cbar.ax.yaxis.set_major_formatter(FormatStrFormatter('%.2g'))
型
到目前为止,但这并没有给我给予想要的结果。
2条答案
按热度按时间vaqhlq811#
matplotlib.ticker.FormatStrFormatter
传递给format=
参数,在创建过程中设置颜色条格式。字符串
的数据
型
col17t5w2#
问题是,虽然
FormatStrFormatter
允许精确地设置格式,但它不能像问题中的1e-7
那样处理偏移量。另一方面,默认的
ScalarFormatter
会自动选择自己的格式,而不会让用户更改它。虽然这是最理想的,但在这种情况下,我们希望自己指定格式。一个解决方案是子类化
ScalarFormatter
并重新实现它的._set_format()
方法,类似于this answer。请注意,您希望
"%.2f"
而不是"%.2g"
始终显示小数点后的两位数。字符串
的数据