python – Bokeh:在链接的图中同步悬停工具提示
发布时间:2020-12-20 11:50:22 所属栏目:Python 来源:网络整理
导读:我有两个相关的情节.悬停时,我想在两个图中都显示工具提示.我已经使用链接选项取得了巨大成功,但现在我也要链接工具提示. 以下是一个例子.工具提示显示在左侧图中.如果我可以在右图中显示相应的工具提示,那就太好了.相应的数据点是具有相同ID的数据点. (共享
我有两个相关的情节.悬停时,我想在两个图中都显示工具提示.我已经使用链接选项取得了巨大成功,但现在我也要链接工具提示.
以下是一个例子.工具提示显示在左侧图中.如果我可以在右图中显示相应的工具提示,那就太好了.相应的数据点是具有相同ID的数据点. (共享3D列数据源;每个绘图采用不同的2D视图). PS.我将改进工具提示中的文字. 更新 结束了类似的事情: 解决方法
我不确定如何使用工具提示功能直接执行此操作,但这是一种使用Text字形模仿工具提示的方法:
from bokeh.io import gridplot from bokeh.plotting import figure,output_file,show from bokeh.models import ColumnDataSource,Circle,HoverTool,CustomJS,Text import numpy as np (x,y,z) = np.arange(0,100,10),100-np.arange(0,np.arange(0,10)/5 output_file("hover_callback.html") p = figure(width=300,height=300,title='Hover over points',x_axis_label='x',y_axis_label='y') p.scatter(x,y) p2 = figure(width=300,y_axis_label='z',x_range=p.x_range) p2.scatter(x,z) source = ColumnDataSource({'x': x,'y': y,'z': z,'txt': ['x='+str(x[i])+',y='+str(y[i]) for i in range(len(x))],'txt2': ['x='+str(x[i])+',z='+str(z[i]) for i in range(len(x))]}) invisible_circle = Circle(x='x',y='y',fill_color='gray',fill_alpha=0.0,line_color=None,size=20) # size determines how big the hover area will be invisible_circle2 = Circle(x='x',y='z',size=20) invisible_text = Text(x='x',text='txt',text_color='black',text_alpha=0.0) visible_text = Text(x='x',text_alpha=0.5) invisible_text2 = Text(x='x',text='txt2',text_alpha=0.0) visible_text2 = Text(x='x',text_alpha=0.5) cr = p.add_glyph(source,invisible_circle,selection_glyph=invisible_circle,nonselection_glyph=invisible_circle) crt = p.add_glyph(source,invisible_text,selection_glyph=visible_text,nonselection_glyph=invisible_text) cr2 = p2.add_glyph(source,invisible_circle2,selection_glyph=invisible_circle2,nonselection_glyph=invisible_circle2) cr2t = p2.add_glyph(source,invisible_text2,selection_glyph=visible_text2,nonselection_glyph=invisible_text2) code = "source.set('selected',cb_data['index']);" callback = CustomJS(args={'source': source},code=code) p.add_tools(HoverTool(tooltips=None,callback=callback,renderers=[cr,crt])) p2.add_tools(HoverTool(tooltips=None,renderers=[cr2,cr2t])) layout = gridplot([[p,p2]]) show(layout) 输出如下所示: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |