Python bokeh 只在模型上应用 hovertools,不在人物上
Python bokeh apply hovertools only on model not on figure
我想在同一个图形上绘制散点图和(基)线。我只想在散点的圆圈上使用 HoverTool
而不是在线上。可能吗?
使用下面的代码,当我将鼠标悬停在该行(该行的任何部分)上时,我会得到带有 index: 0
和 (x, y): (???, ???)
的工具提示。但是 source
中的 index: 0
数据完全不同 ((x, y): (1, 2)
)...
df = pd.DataFrame({'a':[1, 3, 6, 9], 'b':[2, 3, 5, 8]})
from bokeh.models import HoverTool
import bokeh.plotting as bplt
TOOLS = ['box_zoom', 'box_select', 'wheel_zoom', 'reset', 'pan', 'resize', 'save']
source = bplt.ColumnDataSource(data=df)
hover = HoverTool(tooltips=[("index", "$index"), ("(x, y)", "(@a, @b)")])
p = bplt.figure(plot_width=600, plot_height=600, tools=TOOLS+[hover],
title="My sample bokeh plot", webgl=True)
p.circle('a', 'b', size=10, source=source)
p.line([0, 10], [0, 10], color='red')
bplt.save(p, 'c:/_teszt.html')
谢谢!!
要限制您希望 HoverTool 在哪些渲染器上处于活动状态(默认情况下它在所有渲染器上都处于活动状态),您可以在字形上设置 name
属性,然后指定您希望 HoverTool 在哪些名称上处于活动状态在:
p.circle('a', 'b', size=10, name='circle', source=source)
hover = HoverTool(names=['circle'])
文档:
http://docs.bokeh.org/en/latest/docs/reference/models/tools.html#bokeh.models.tools.HoverTool.names
或者您可以将渲染器添加到 HoverTool。
circle = p.circle('a', 'b', size=10, source=source)
hover = HoverTool(renderers=['circle'])
文档:
我想在同一个图形上绘制散点图和(基)线。我只想在散点的圆圈上使用 HoverTool
而不是在线上。可能吗?
使用下面的代码,当我将鼠标悬停在该行(该行的任何部分)上时,我会得到带有 index: 0
和 (x, y): (???, ???)
的工具提示。但是 source
中的 index: 0
数据完全不同 ((x, y): (1, 2)
)...
df = pd.DataFrame({'a':[1, 3, 6, 9], 'b':[2, 3, 5, 8]})
from bokeh.models import HoverTool
import bokeh.plotting as bplt
TOOLS = ['box_zoom', 'box_select', 'wheel_zoom', 'reset', 'pan', 'resize', 'save']
source = bplt.ColumnDataSource(data=df)
hover = HoverTool(tooltips=[("index", "$index"), ("(x, y)", "(@a, @b)")])
p = bplt.figure(plot_width=600, plot_height=600, tools=TOOLS+[hover],
title="My sample bokeh plot", webgl=True)
p.circle('a', 'b', size=10, source=source)
p.line([0, 10], [0, 10], color='red')
bplt.save(p, 'c:/_teszt.html')
谢谢!!
要限制您希望 HoverTool 在哪些渲染器上处于活动状态(默认情况下它在所有渲染器上都处于活动状态),您可以在字形上设置 name
属性,然后指定您希望 HoverTool 在哪些名称上处于活动状态在:
p.circle('a', 'b', size=10, name='circle', source=source)
hover = HoverTool(names=['circle'])
文档:
http://docs.bokeh.org/en/latest/docs/reference/models/tools.html#bokeh.models.tools.HoverTool.names
或者您可以将渲染器添加到 HoverTool。
circle = p.circle('a', 'b', size=10, source=source)
hover = HoverTool(renderers=['circle'])
文档: