如何修改Bokeh图表Y轴刻度标签:替换科学计数法为常规数值
解决Bokeh图表Y轴科学计数法转常规数值的问题
嘿,这个问题我碰到过好几次了,其实调整Bokeh的Y轴刻度显示很简单,有两种常用的方法,看你需求来选:
方法一:手动指定刻度位置(精准控制)
如果你想严格显示20000、40000、60000、80000这些固定刻度,可以用FixedTicker定义刻度位置,再配合BasicTickFormatter关闭科学计数法的自动转换:
from bokeh.plotting import figure, show from bokeh.models import FixedTicker, BasicTickFormatter # 创建示例图表 p = figure(title="自定义Y轴刻度", y_axis_label="数值") p.line([1,2,3,4], [15000, 35000, 55000, 75000]) # 设置Y轴固定刻度 p.yaxis.ticker = FixedTicker(ticks=[20000, 40000, 60000, 80000]) # 关闭科学计数法,强制显示常规数值 p.yaxis.formatter = BasicTickFormatter(use_scientific=False) show(p)
方法二:自动生成刻度但禁用科学计数法(灵活适配)
如果不需要固定刻度,只是不想看到科学计数法,让Bokeh自动生成合适的常规数值刻度,可以用NumeralTickFormatter指定显示格式:
from bokeh.plotting import figure, show from bokeh.models import NumeralTickFormatter # 创建示例图表 p = figure(title="自动生成常规刻度", y_axis_label="数值") p.line([1,2,3,4], [15000, 35000, 55000, 75000]) # 设置Y轴格式为常规数字,"0,0"会显示带逗号的格式(比如20,000),不需要逗号可以改用"0" p.yaxis.formatter = NumeralTickFormatter(format="0,0") show(p)
两种方法都能解决你的问题,第一种适合需要精准控制刻度值的场景,第二种更灵活,适配数据范围可能变化的情况。
内容的提问来源于stack exchange,提问作者Cracken
相关产品推荐
相关产品推荐

