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

在Bokeh中更新multi_line数据源时,如何更新线条颜色?

Bokeh multi_line组件更新数据及颜色的正确方法

问题根源

你遇到的颜色不生效问题,是因为创建multi_line时没有将颜色属性与数据源的字段绑定,导致更新数据源里的颜色值无法被组件识别。

解决步骤

  1. 初始创建图表时绑定颜色字段
    创建multi_line时,必须通过line_color参数指定要绑定的数据源字段名(比如'color'),这样组件才会读取数据源中的颜色值为每条线上色:

    from bokeh.plotting import figure, show
    
    p = figure()
    # 指定line_color绑定数据源的color字段,同时设置线条宽度增强效果
    p.multi_line(xs=[[0,1]], ys=[[0,1]], name='my_lines', line_color='color', line_width=2)
    
    show(p)
    
  2. 更新数据源数据
    后续更新时,确保数据源中包含color字段(与创建时绑定的字段名一致),直接更新data_source.data即可:

    lines_ds = p.document.get_model_by_name('my_lines').data_source
    
    lines_ds.data = dict(
        xs=[[1,2,3],[0,0]],
        ys=[[0,1,0],[0,1]],
        color=['black','red']
    )
    show(p)
    

额外说明

  • 如果是在Bokeh Server的交互式场景中,无需再次调用show(p),更新data_source.data后,图表会自动同步更新。
  • multi_line的颜色参数是line_color(单数形式),绑定字段后,Bokeh会自动将字段列表中的每个值对应到每条线上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:02:52