importnumpyasnpfrombokeh.modelsimportTapToolfrombokeh.plottingimportfigure,showxx,yy=np.meshgrid(range(0,101,4),range(0,101,4))x=xx.flatten()y=yy.flatten()N=len(x)inds=[str(i)foriinnp.arange(N)]radii=np.random.random(size=N)*0.4+1.7colors=["#%02x%02x%02x"%(int(r),int(g),150)forr,ginzip(50+2*x,30+2*y)]TOOLS="crosshair,pan,wheel_zoom,box_zoom,reset,tap,save"p=figure(title="Tappy Scatter",tools=TOOLS)cr=p.circle(x,y,radius=radii,fill_color=colors,fill_alpha=0.6,line_color=None)tr=p.text(x,y,text=inds,alpha=0.5,text_font_size="7px",text_baseline="middle",text_align="center")# in the browser console, you will see messages when circles are clickedtool=p.select_one(TapTool).renderers=[cr]show(p)# open a browser