我有一个在Tornado 4.5.3上运行的Bokeh服务器应用程序,其中包括以下内容:
散景点图,包括套索工具:
p = figure(min_border_left=50, plot_height = 300, plot_width = 300, tools='pan, box_zoom, wheel_zoom, reset, undo, redo, save, lasso_select')
一个带有WMTS地图和Geoviews多边形的holoviews容器:
plot = EsriImagery.options(width=800, height=400) * gv.Polygons(pddf, vdims=['time', 'dttime']).redim.range(Longitude=(-130,-70)) * gv.Points(locations[where][0][0], locations[where][0][1], where, fontsize=50)
一个customJS回调,它在套索点时(感谢this SO question)注册您从newdict
中选择的数据行:
newdict.callback = CustomJS(args = dict(source=newdict), code = """
console.log( '#Selected rows:');
var indices = source.selected["1d"].indices;
for (var i = 0; i<indices.length; i++){
console.log(i+":"+indices[i]);
}
""")
丢失的部分::我希望套索行的时间变量可以显示哪些多边形(pddf
Pandas DataFrame也有一个时间变量)。文本需要保留在顶部,地图应保留在底部(两者之间的多边形)。这可能吗?任何帮助将不胜感激。
我能够同时显示点图和多边形图以显示在同一应用程序中的唯一方法是使用curdoc.add_root(layout(grid, data_table, dropdown))
(grid
是网格图对象, data_table
散景数据表),后者带有doc = hv.renderer('bokeh').server_doc(plot)
。我很乐意就此提出建议!我想如果两个图都使用相同的方法渲染,我的回调问题将更容易解决。
我曾尝试使用CDSview,但是geoviews多边形不能接受ColumnDataSource对象作为数据。
我正在使用Bokeh 0.13.0,Python 3.6.7,Holoviews 1.10.7和Geoviews 1.5.1。