首页 > 解决方案 > Bokeh 2.3.0:multi_line HoverTool 显示源数组而不是点坐标

问题描述

我有几个包含 X、Y 和日期值的数组,每个数组都是一行。我希望在悬停点时出现每个 X/Y/日期。对于我的项目,我确实需要使用散景 2.3.0multi_line而不是多个。line

到目前为止,我已经像往常一样用线条、四边形等定义了工具提示……但是我在工具提示中得到的是构成每一行的数组(下面的图片和代码)。

下图中的预期工具提示将是 (xs:0, ys:1.47, color:green, date:2021-01-01) 而不是完整的数组。

有没有办法显示逐点值而不是每行的源数组?

import pandas as pd
import numpy as np
from bokeh.io import show
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource, HoverTool

xs = [np.arange(0,10) for _ in range(3)]
ys = [(np.random.randn(10) + i).round(2) for i in range(3)]
dates = [pd.date_range("2021-01-01", "2021-01-10") for _ in range(3)]
colors = ["red", "blue", "green"]
source = ColumnDataSource(dict(xs=xs, ys=ys, dates=dates, colors=colors))

p = figure(plot_width=750, plot_height=300)
p.multi_line(xs="xs", ys="ys", color="colors", source=source)
p.add_tools(HoverTool(tooltips=[("xs","@xs"), ("ys","@ys"), ("color", "@colors"), ("date","@dates{%F}")]))

show(p)

多线悬停

标签: pythonbokeh

解决方案


推荐阅读