如何使用HoverTool显示Bokeh中两个不同字形的两点之间的差异?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用HoverTool显示Bokeh中两个不同字形的两点之间的差异?相关的知识,希望对你有一定的参考价值。
我在一个情节中有两条线,我想用HoverTool
取代悬停时每对点的差异。
我尝试了'@y' - '@yhat'
,float('@y') - float('@yhat')
,@y - @yhat
,但没有任何效果。
答案
这可以通过HoverTool上的JS回调来安排,如下所示(Bokeh v1.1.0):
from bokeh.plotting import figure, show
from bokeh.models import CustomJS, HoverTool, ColumnDataSource
p = figure()
l1 = p.line([1, 2, 3, 4, 5], [14, 16, 11, 12, 17], color = 'green')
l2 = p.line([1, 2, 3, 4, 5], [15, 10, 19, 18, 13], color = 'red')
code = ''' var index = cb_data.index['0d'].indices[0];
if (index != null){
v1 = String(l1.data_source.data['y'][index]);
v2 = String(l2.data_source.data['y'][index]);
diff = String(v1 - v2);
hover.tooltips = [["x", "@x"], ["y1", v1], ["y2", v2], ["diff", diff]];
} '''
hover = HoverTool(mode = 'vline', line_policy = 'prev', point_policy = 'snap_to_data', renderers = [l1])
hover.callback = CustomJS(args = dict(l1 = l1, l2 = l2, hover = hover), code = code)
p.add_tools(hover)
show(p)
结果:
以上是关于如何使用HoverTool显示Bokeh中两个不同字形的两点之间的差异?的主要内容,如果未能解决你的问题,请参考以下文章
具有半透明背景的 Python Bokeh Hovertool