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

如何用Bokeh/HoloViews/Datashader自定义可视化提示框

解决HoloViews Rasterize后自定义Tooltip访问聚合值的问题
  • 核心问题:通过rasterize按x/y维度聚合z2的sum后,生成的聚合字段默认名称格式为[维度1]_[维度2] [原始字段名](也就是你看到的x_y z2),直接用@z2会找不到对应字段,因为聚合后的字段名已经变更。

  • 步骤1:确认聚合后的实际字段名
    先打印rasterize结果的列名,避免凭猜测写错字段名:

    print(rasterized.data.columns)
    

    输出会明确显示所有可用字段,比如['x', 'y', 'x_y z2']。

  • 步骤2:正确配置HoverTool
    对于带空格的字段名,必须用@{字段名}的格式引用,同时可以直接自定义x/y的显示标注:

    from bokeh.models import HoverTool
    
    hover = HoverTool(
        tooltips=[
            ("X坐标", "@x"),
            ("Y坐标", "@y"),
            ("Z2聚合总和", "@{x_y z2}")
        ]
    )
    
    # 将自定义提示框应用到可视化
    rasterized.opts(tools=[hover])
    
  • 优化方案:重命名聚合字段
    如果默认字段名过于繁琐,直接重命名后再配置Tooltip会更直观:

    # 重命名聚合后的字段
    rasterized = rasterized.rename({'x_y z2': 'z2_total'})
    
    # 此时Tooltip可以直接使用新字段名
    hover = HoverTool(
        tooltips=[
            ("X坐标", "@x"),
            ("Y坐标", "@y"),
            ("Z2总和", "@z2_total")
        ]
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:36:25