问题描述
我在处理from holoviews.operation.datashader import datashade
数据阴影输出以及在前端级别更新它们时遇到了麻烦。在通常的bokeh示例中,当我们在更新请求中更新columndatasource.data= new_data
时,新的更改会自动反映在前端。
例如slider.py,所以一旦调用update_data()
,我们将更新source.data = dict(x=x,y=y)
,这反过来将更新我们的相同图。但是,如果我们有10百万个点的大型数据集,我们必须使用datashader (任何其他方法都建议?),所以一旦我们获得datashade(hv.Curve(df[x],df[y]))
的输出,我们将不再能够更新数据源内容。
那么,我们如何更新的相同的情节时,从下拉菜单选择一个值?并正确显示悬停值?
import numpy as np
import holoviews as hv
import datashader as ds
from dask import dataframe as dd
from bokeh.layouts import layout as bk_lyout
from bokeh.plotting import figure
from holoviews.operation.datashader import datashade,dynspread
from bokeh.models import (CategoricalColorMapper,HoverTool,ColumnDataSource,Panel,FuncTickFormatter,SingleIntervalTicker,Linearaxis,Column)
from bokeh.models.widgets import (CheckBoxGroup,Slider,RangeSlider,Tabs,CheckBoxButtonGroup,TableColumn,DataTable,Select)
from bokeh.layouts import row
from bokeh.palettes import Category20_16
renderer = hv.renderer('bokeh').instance(mode='server')
cols = ['A-Val','B-Val','D-Val']
def modify_doc(doc,x,y,df): plot1 = get_plot(doc,df)
def update_plot(attr,old,new):
print('attr {} old {} new {}'.format(attr,new))
x = select_x.value
y = select_y.value
plot_type = select_plot_type.value
print("update plot {}-{}".format(x,y))
new_vmap = dynspread(datashade(curve(x,df,plot_type))).opts(width=1200,height=600,tools=["hover"])
new_hvplot = renderer.get_plot(new_vmap,doc)
new_plot = bk_lyout([[new_hvplot.state]],sizing_mode='scale_width')
doc.add_root(new_plot)
select_x = Select(title='x-axis',options=cols,value=x)
select_y = Select(title='y-axis',value=y)
select_plot_type = Select(title='Plots',options=PLOTS,value=PLOTS[0])
select_x.on_change('value',update_plot)
select_y.on_change('value',update_plot)
select_plot_type.on_change('value',update_plot)
layout = row(Column(select_x,select_y,select_plot_type,plot1,plot2))
tab = Panel(child=layout,title='Interactive Plotting')
return tabs
这里
-
一旦调用
update_plot()
,我被迫在doc.add_root(new_plot)
中添加新图,是否有任何方法可以更新称为update_plot()
的现有图本身? -
在悬停在绘图上时,当我使用
datashed
函数时,我的x轴和y轴值格式不正确吗?我的X轴是%Y-%m-%d %H:%M:%s
格式的时间戳,Y轴是浮点值。 -
X轴值格式不正确,突出显示
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)