如何在散景中使用多行悬停?

时间:2018-06-05 22:41:30

标签: python-2.7 visualization bokeh series

我在散景中遇到多线图的问题。当我显示图表时,我无法获取值。我正在使用系列数据类型。

代码:

df = pandas.read_csv("Data.csv", parse_dates=["time"])
result = df.groupby(['time','up','down'], as_index = False)['up', 'down'].sum()

p = Figure(width=500, height=250,logo =None, 
    sizing_mode='scale_width', 
    tools="pan, box_zoom, wheel_zoom, save, reset, box_select",
    x_axis_type="datetime",
    title="Graph:", 
    x_axis_label="Time Frame", 
    y_axis_label="Utilization (GB)",
    toolbar_location="below",
    toolbar_sticky=False)


up = result["up"]
time = result["time"]
down = result["down"]

p.multi_line(xs = [time, time], ys = [up, down], color=['#2828B0', '#BC0096'], line_width=1, legend='graph_1')
hover = HoverTool(tooltips = [('Time', '@time'),
                         ('data', '@up')])
p.add_tools(hover)
p.show()

Graph link !!

1 个答案:

答案 0 :(得分:2)

悬停工具提示的@字段指的是Bokeh ColumnDataSource对象中的列。由于您尚未使用您选择的列名明确创建CDS,因此在这种情况下,Bokeh会为您准备一个标准列名xsys。所以:

HoverTool(tooltips = [
    ('Time', '@xs'),
    ('data', '@ys')]
)

这会将悬停显示在多行的所有段上。没有办法只为一个或另一个做悬停工作。如果您需要,则必须使用单独的line来代替multi_line