首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bokeh图表值工具提示显示多行的重复值。

Bokeh图表值工具提示显示多行的重复值。
EN

Stack Overflow用户
提问于 2018-02-19 12:01:14
回答 1查看 1.1K关注 0票数 0

我有多个问题。

首先,我很难得到我的Bokeh图形与多行,以显示悬停工具提示每一行的值。它在所有行的工具提示(最近线最近的数据点的值)上显示相同的值,而不是每一行的点的值。

在此图像中,所有工具提示显示的值为1。我期望5、3、1而不是1、1、1:

下面是一个具有相同输出的MCVE:

代码语言:javascript
运行
复制
from bokeh.plotting import figure, show
from bokeh import palettes
from bokeh.models import HoverTool
import itertools
import pandas as pd

dummy = pd.DataFrame({'DT': ['2015-01-01', '2015-01-02', '2015-01-03'], 'Flux': [1, 2, 3], 'Ore': [3, 2, 1], 'Slag': [5, 4, 3]})
dummy.index = pd.to_datetime(dummy['DT'])
dummy.drop('DT', axis=1, inplace=True)

# colour generator
def color_gen():
    yield from itertools.cycle(palettes.Category20[len(dummy.columns)])
color = color_gen()


TOOLS = "crosshair,pan,wheel_zoom,box_zoom,zoom_in,zoom_out,reset,save"
p = figure(width=1200, height=600, x_axis_type="datetime", y_axis_label='Kilograms in/out (daily)',
           toolbar_location="above", tools=TOOLS, active_scroll="wheel_zoom")

for column in dummy.columns:
    x, y = dummy.index.values, dummy[column].values
    this_color = next(color)

    my_plot = p.line(x, y, legend=column, color=this_color)
    p.circle(x, y, legend=column, fill_color="white", line_color=this_color, size=7)

    p.add_tools(HoverTool(tooltips=[("Column", " %s" % column),
                                    ("Day", "$x{%F}"),
                                    ("Weight in/out", "$y{0} kg")],
                          formatters={'$x': 'datetime'},
                          mode='vline',
                          renderers=[my_plot]))
show(p)

接下来,我注意到,如果线条彼此靠近,工具提示就会重叠。是否有可能防止重叠,或更好地,创建一个文本块在一个角显示x位置和所有线的y's?

最后,将下面的代码添加到自定义的HoverTool中,我希望它只显示最近数据点的值,而不是插值值(按照this问题)。然而,它仍然插值。有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 03:59:56

像这样更改HoverTools并检查它显示与它们的行对应的不同值。

代码语言:javascript
运行
复制
p.add_tools(HoverTool(tooltips=[("Column", " %s" % column),
                                    ("Day", "$x{%F}"),
                                    ("Weight in/out", "@y kg")],
                          formatters={'$x': 'datetime'},
                          mode='vline',
                          renderers=[my_plot]))

如果这对你有用的话请告诉我。

这张图会像这样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48865787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档