如何解决散景+ Holoviews图的M * N布局
我有N个图,我想以M * N布局显示这些图,其中M = 1,2,3,.....
import holoviews as hv
from bokeh.layouts import layout as bk_lyout
from bokeh.layouts import row,column
from bokeh.models import (HoverTool,Panel,CustomJS)
from bokeh.models.widgets import (Tabs,Select,Button)
from bokeh.models.widgets.inputs import AutocompleteInput
from dask import dataframe as dd
from bokeh.core.enums import SizingMode
from holoviews.operation.datashader import datashade
def get_vmap(x,y,label=''):
if x not in cols or y not in cols:
return None
hover = HoverTool(tooltips=[('x-value','@' + x + '{%F %H:%M:%Ss %6Nms}'),('y-value','$y')],formatters={'@timestamp': 'datetime'})
curve_generated = curve(x,label=label)
vmap = datashade(curve_generated,normalization='linear').opts(width=400,height=400)
range_stream = hv.streams.RangeX(source=curve_generated)
filtered_zoom = curve_generated.apply(xrange_filter,streams=[range_stream])
hover_enabled = filtered_zoom.opts(tools=[hover])
# hover_enabled = hv.util.Dynamic(aggregate(curve_generated,width=50,height=50),operation=hv.QuadMesh).opts(tools=[hover],alpha=0,hover_alpha=0.1)
return vmap * hover_enabled
plot_layout = column(children=[])
def modify_doc(doc):
plots = []
for key,value in PLOT_INFO.items():
overlay_plots = []
for carrier in range(7):
car_value = value.format(carrier)
plot_label = "{}-Carrier_{}".format(key.split("_vs_")[1],carrier)
carrier_plot = get_vmap('timestamp',car_value,label=plot_label)
if carrier_plot is not None:
print('\n Found plot for Carrier {},{}'.format(carrier,carrier_plot))
overlay_plots.append(carrier_plot)
overlaid_plot = None
for plot in overlay_plots:
overlaid_plot = overlaid_plot * plot if overlaid_plot is not None else plot
#overlaid_plot = hv.Overlay(overlay_plots).collate()
if overlaid_plot is not None:
try:
hv_overlay_plot = renderer.get_plot(overlaid_plot,doc)
hv_overlay_plot = bk_lyout([[hv_overlay_plot.state]],sizing_mode='fixed')
select.js_link('value',hv_overlay_plot,'sizing_mode')
plots.append(hv_overlay_plot)
plot_layout.children.append(hv_overlay_plot)
except Exception as e:
print(e)
tab = Panel(child=plot_layout,title='Interactive Dashboard')
这里plot_layout.children
列出了图表,我想以M * N表示。例如10个地块,每行2个,用户应该可以选择修改它,例如选择5个地块然后2行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。