You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bokeh图表如何动态切换x_range为FactorRange?分类轴图表为空求助

散点图X轴为分类列时显示为空的解决方法

问题排查与修复步骤

  • 确保数据格式匹配:设置FactorRange后,散点图的x字段必须是字符串类型的分类值,不能是数值编码或其他类型。要保证x_data里的每个值都存在于x_data_unique_values列表中,无格式差异(比如大小写、空格)。
  • 显式配置分类轴:初始化figure时直接指定x_range为FactorRange,同时明确x_axis_type为分类类型,绘制散点时传入正确的分类数据:
    from bokeh.models import FactorRange
    from bokeh.plotting import figure
    
    # 提取唯一分类值并排序(可选,保证显示顺序)
    x_data_unique_values = sorted(list(set(x_data)))
    
    # 初始化带分类X轴的图表
    my_figure = figure(x_range=FactorRange(factors=x_data_unique_values), x_axis_type="categorical")
    # 绘制散点,确保x传入的是字符串分类数据
    my_figure.circle(x=x_data, y=y_data, size=8)
    
  • 校验数据完整性:确认x_data_unique_values非空,且x_data与y_data长度一致,无缺失值导致数据不匹配。
  • 避免范围被覆盖:检查代码中是否有后续逻辑重置了x_range,确保FactorRange的设置是最终生效的配置。

快速调试技巧

  • 打印x_data_unique_values和x_data的前5个值,验证分类值的格式完全一致。
  • 手动指定固定分类值测试:
    my_figure.x_range = FactorRange(factors=["分类A", "分类B", "分类C"])
    
    如果此配置能显示图表,说明你的x_data_unique_values存在格式或数据问题。

内容的提问来源于stack exchange,提问作者Yaming He

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:13:14