python - Bokeh 趋势/补丁图中带有两个参数的悬停工具

标签 python bokeh

我正在使用 Bokeh 制作趋势图,显示概念的流行程度如何随时间变化。我使用了 brewer 示例 ( https://docs.bokeh.org/en/latest/docs/gallery/stacked_area.html )。只有工具提示并没有真正显示我想要的内容。

我这样修改了底部的 6 行:

source = ColumnDataSource(data=dict(
    x=[x2] * len(areas),
    y=[areas[y] for y in categories],
    name=categories,
))
timesteps = [str(x.date()) for x in pd.date_range('1950-01-01', '1951-07-01', freq='MS')]

p = figure(x_range=FactorRange(factors=timesteps), y_range=(0, 800), tools="hover")
p.xaxis.major_label_orientation = np.pi/4
p.grid.minor_grid_line_color = '#eeeeee'
hover = p.select(dict(type=HoverTool))
hover.tooltips = [
    ('Name', ' @name'),
    ('Time', ' $x'),
    ('Count', ' @count'),
]

p.patches('x', 'y', source=source, color=colors, alpha=0.8, line_color=None)

output_file("brewer.html", title="brewer.py example")

show(p)

工具提示的前两行显示名称 (y0, y1, y2...) 和日期;只有第三行我想不通。我想显示当时数据点的“高度”,即如果我有像这样的字典

{'y0': {'1950-01-01': '3', '1950-02-01': '5', '1950-03-01': '6'},
 'y1': {'1950-01-01': '10', '1950-02-01': '15', '1950-03-01': '14'}}

等等,我想在给定时间点的每个点显示一个y的流行度。该受欢迎程度已经以图形方式显示,但为了使其更明显,我还想提供绘制的数字 - 我只是不知道如何。 我已经尝试构建不同的词典和列表,但只成功地为每个概念的每个时间点显示一个数字,但该数字没有改变。

最佳答案

除非我误解了什么,你能不能简单地将悬停工具更改为以下内容? :

hover.tooltips = [
    ('Name', ' @name'),
    ("(Time, Height)", "($x, $y)"),
]

这会随着您垂直或水平移动而改变高度。

关于python - Bokeh 趋势/补丁图中带有两个参数的悬停工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472723/

相关文章:

用于日期、小时、分钟和秒的 Python 倒数计时器

Python Bokeh 刻度标签

python - 将列数据从 pandas df 传递到 Bokeh 绘图函数

python - 简单的 Bokeh 应用程序 : Chart does not update as expected

python - 多个 Bokeh 服务器集成到 Flask

python-3.x - 在 Bokeh python 中创建雷达图的步骤是什么?

Python多线程并没有提高速度

python - 处理闰日,无论何时存在

python - 控制Python进程的好方法

python - 如何传递文件中包含的命令行参数并保留该文件的名称?