求助:使用Bokeh绘制含字符串X值折线图出现空白图表
问题分析与解决
你的代码存在两个关键问题导致图表空白:
- 未导入
ColumnDataSource类,直接使用会引发错误(若环境未提前导入) - Bokeh默认的
figure未配置分类X轴,当X轴为字符串类型的分类数据时,需明确指定X轴范围为分类类型,否则无法正确解析数据并渲染折线
修正后的代码
from bokeh.plotting import figure, output_notebook, show from bokeh.models import ColumnDataSource # 补充缺失的导入 sample={'A':['2012-01','2012-02','2012-03'],'B':[7,8,9]} source2 = ColumnDataSource(sample) # 创建figure时指定X轴为分类范围 p = figure(width=400, height=400, x_range=sample['A']) p.line(x='A', y='B', source=source2, line_width=2) output_notebook() show(p)
关键说明
- 必须导入
ColumnDataSource才能正确使用数据源对象 - 通过
x_range=sample['A']告知Bokeh X轴是分类数据,范围为sample['A']中的字符串列表,这样折线图就能正确识别并渲染X轴的分类值
内容的提问来源于stack exchange,提问作者YHKIM
相关产品推荐
相关产品推荐

