我正在尝试设置一个bokeh图表,使用户可以单击图表以添加点。我看过这个示例,它使用
BoxSelectTool
将Rect
符号添加到图表中,但我想知道如何在点击位置添加以圆为中心的符号。我也想将这些点发送回服务器端。有没有人做过类似的事情?BoxSelectTool
将Rect
符号添加到图表中,但我想知道如何在点击位置添加以圆为中心的符号。我也想将这些点发送回服务器端。有没有人做过类似的事情?这对我在Bokeh版本0.12.13中有效:
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource, Column
from bokeh.io import curdoc
from bokeh.events import DoubleTap
coordList=[]
TOOLS = "tap"
bound = 10
p = figure(title='Double click to leave a dot.',
tools=TOOLS,width=700,height=700,
x_range=(-bound, bound), y_range=(-bound, bound))
source = ColumnDataSource(data=dict(x=[], y=[]))
p.circle(source=source,x='x',y='y')
#add a dot where the click happened
def callback(event):
Coords=(event.x,event.y)
coordList.append(Coords)
source.data = dict(x=[i[0] for i in coordList], y=[i[1] for i in coordList])
p.on_event(DoubleTap, callback)
layout=Column(p)
curdoc().add_root(layout)
(要运行它,请将此脚本保存为 something.py 并在 cmd 中运行:bokeh serve something.py --show)