散景中 X 轴上的日期时间
Datetime on an X Axis in Bokeh
我无法理解日期时间在 Bokeh 中的工作原理。
我的代码在 x 轴上输出毫秒,如果轴类型是 'datetime',这似乎是默认设置,但我希望每 5 年将其分隔一次。
如何在 Bokeh 中完成此操作?日期在 1950 年之前,所以我不能使用时间戳。当我排除日期时间轴类型时,它会将每个值显示为 x 轴上的刻度。当我尝试将输入的数据更改为日期时间对象时,Bokeh 拒绝了它。
我已经阅读了关于该主题的其他帖子,以及 Bokeh 关于
DatetimeTickFormatter,它似乎也不适合我。
我所有的情节代码如下:
r = requests.get('https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json')
data = json.loads(r.text)
chart_data = {
'date': [a[0] for a in data['data']], #this is the problem data
'gdp': [a[1] for a in data['data']],
}
source = ColumnDataSource(chart_data)
hover = HoverTool(
tooltips=[
('GDP', '@gdp{[=10=],0.00}'),
('Date', '@date{%Y - %B}'),
],
formatters={
'date' : 'datetime',
}
)
bar = figure(x_range=chart_data['date'],
x_axis_type='datetime',
plot_height=750,
plot_width=1000,
tools='wheel_zoom, reset, save',
title=data['source_name'])
bar.vbar(x='date', top='gdp', width=0.9, source=source)
bar.add_tools(hover)
#visual settings
bar.xaxis.formatter = DatetimeTickFormatter(years = ['%Y'])
bar.xaxis.major_label_orientation = 'vertical'
bar.xaxis.minor_tick_line_color = None
bar.xgrid.grid_line_color = None
bar.yaxis.formatter = NumeralTickFormatter(format='[=10=],0.00')
bar.ygrid.grid_line_color = None
show(bar)
谢谢你的帮助,这让我发疯了!
感谢 bigreddot 的帮助。我的问题是,由于我设置了 x_range 属性,而不是默认日期时间,我的情节充当了分类范围。
我无法理解日期时间在 Bokeh 中的工作原理。
我的代码在 x 轴上输出毫秒,如果轴类型是 'datetime',这似乎是默认设置,但我希望每 5 年将其分隔一次。
如何在 Bokeh 中完成此操作?日期在 1950 年之前,所以我不能使用时间戳。当我排除日期时间轴类型时,它会将每个值显示为 x 轴上的刻度。当我尝试将输入的数据更改为日期时间对象时,Bokeh 拒绝了它。
我已经阅读了关于该主题的其他帖子,以及 Bokeh 关于 DatetimeTickFormatter,它似乎也不适合我。
我所有的情节代码如下:
r = requests.get('https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json')
data = json.loads(r.text)
chart_data = {
'date': [a[0] for a in data['data']], #this is the problem data
'gdp': [a[1] for a in data['data']],
}
source = ColumnDataSource(chart_data)
hover = HoverTool(
tooltips=[
('GDP', '@gdp{[=10=],0.00}'),
('Date', '@date{%Y - %B}'),
],
formatters={
'date' : 'datetime',
}
)
bar = figure(x_range=chart_data['date'],
x_axis_type='datetime',
plot_height=750,
plot_width=1000,
tools='wheel_zoom, reset, save',
title=data['source_name'])
bar.vbar(x='date', top='gdp', width=0.9, source=source)
bar.add_tools(hover)
#visual settings
bar.xaxis.formatter = DatetimeTickFormatter(years = ['%Y'])
bar.xaxis.major_label_orientation = 'vertical'
bar.xaxis.minor_tick_line_color = None
bar.xgrid.grid_line_color = None
bar.yaxis.formatter = NumeralTickFormatter(format='[=10=],0.00')
bar.ygrid.grid_line_color = None
show(bar)
谢谢你的帮助,这让我发疯了!
感谢 bigreddot 的帮助。我的问题是,由于我设置了 x_range 属性,而不是默认日期时间,我的情节充当了分类范围。