如何用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
相关产品推荐
相关产品推荐

