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

Bokeh中HoverTool是否支持Pandas DataFrame,还是必须用ColumnDataSource?

Bokeh悬停提示框与Pandas DataFrame的配合方案
  • 两种方式都支持,无需局限于某一种:
    • 直接用DataFrame时,pandas_bokeh会在底层自动把DataFrame转换成ColumnDataSource,这个过程是隐式的。如果只是简单调整悬停提示内容,你可以在调用绘图方法时,直接通过hovertool参数传入自定义配置,不用手动处理数据源。示例代码:
      df.plot_bokeh(
          kind="bar",
          hovertool=[("类别", "@x"), ("数值", "@y{0.00}"), ("备注", "@your_column")]
      )
      
    • 如果需要更复杂的定制(比如给提示框加HTML样式、关联多组数据逻辑),建议手动创建ColumnDataSource,再配合HoverTool精细配置,这样能获得更高的灵活性。示例代码:
      from bokeh.models import ColumnDataSource, HoverTool
      from bokeh.plotting import figure, show
      
      source = ColumnDataSource(df)
      p = figure(x_axis_label="类别", y_axis_label="数值")
      p.vbar(x="category_col", top="value_col", width=0.8, source=source)
      
      hover = HoverTool(
          tooltips="""
              <div>
                  <span style="font-size:14px">类别: @category_col</span>
                  <span style="font-size:14px; color:red">数值: @value_col{0.00}</span>
              </div>
          """
      )
      p.add_tools(hover)
      show(p)
      

简单总结:常规的提示内容修改直接用DataFrame加参数即可,复杂定制场景则手动使用ColumnDataSource更合适。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:31