如何在Bokeh中移除X轴首尾日期并替换为时间格式?
解决方案:自定义Bokeh X轴时间格式
没问题,这是很常见的需求,你只需要给X轴指定DatetimeTickFormatter来自定义时间显示格式就行,具体修改如下:
from bokeh.models import DatetimeTickFormatter # 保留你的原有绘图代码 p = figure(plot_width=1000, plot_height=500, x_axis_type="datetime") p.circle(df.Time, df.Amount) p.xaxis.axis_label = 'Time' p.yaxis.axis_label = 'Amount' # 关键:添加X轴格式设置 p.xaxis.formatter = DatetimeTickFormatter( hours=["%H:%M"], days=["%H:%M"], # 因为数据跨天,必须指定days级别的格式 months=["%H:%M"], years=["%H:%M"] ) show(p)
关键说明:
- Bokeh会根据数据的时间范围自动选择刻度的显示级别(比如小时、天、月等),你的数据跨了1/01和1/02两天,所以首尾刻度会触发
days级别,因此必须给days也设置成%H:%M格式,才能显示成00:00这种时间样式。 - 格式符含义:
%H是24小时制的小时数,%M是分钟数;如果需要12小时制,可以改成"%I:%M %p"(比如显示12:00 AM)。
内容的提问来源于stack exchange,提问作者OnebyOne
相关产品推荐
相关产品推荐

