trying to get slider to work
This commit is contained in:
@@ -2806,13 +2806,16 @@ def interactive_streamchart(id=0,promember=0):
|
||||
|
||||
return [script,div]
|
||||
|
||||
def interactive_chart(id=0,promember=0,intervaldata = {}):
|
||||
def interactive_chart(id=0,promember=0,intervaldata = {}, timepos = None):
|
||||
# Add hover to this comma-separated string and see what changes
|
||||
if (promember==1):
|
||||
TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||
else:
|
||||
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||
|
||||
if timepos:
|
||||
TOOLS = ''
|
||||
|
||||
|
||||
columns = ['time','pace','hr','fpace','ftime','spm']
|
||||
datadf = dataprep.getsmallrowdata_db(columns,ids=[id])
|
||||
@@ -2931,6 +2934,32 @@ def interactive_chart(id=0,promember=0,intervaldata = {}):
|
||||
right='time_r',source=intervalsource,color='mediumvioletred',
|
||||
y_range_name='spmax',fill_alpha=0.2,line_alpha=0.2)
|
||||
|
||||
if timepos:
|
||||
timepos = datetime.timedelta(seconds=timepos)
|
||||
timeline = ColumnDataSource(
|
||||
data=dict(
|
||||
x = [timepos,timepos],
|
||||
y = [10,100]
|
||||
))
|
||||
plot.line('x','y',source=timeline,y_range_name='spmax')
|
||||
|
||||
callback = CustomJS(args = dict(timeline=timeline),
|
||||
code="""
|
||||
var data = timeline.data
|
||||
var x = data['x']
|
||||
var y = data['y']
|
||||
var sliderpos = cb_obj.value
|
||||
data['x'] = [sliderpos,sliderpos]
|
||||
timeline.change.emit();
|
||||
"""
|
||||
)
|
||||
timemax = int(datadf['time'].max()/1000.)
|
||||
slider = Slider(start=0,end=100,step=1.0,callback=callback)
|
||||
slider.js_on_change('value',callback)
|
||||
layout = layoutcolumn([plot,slider])
|
||||
else:
|
||||
layout = plot
|
||||
|
||||
|
||||
hover = plot.select(dict(type=HoverTool))
|
||||
|
||||
@@ -2945,9 +2974,11 @@ def interactive_chart(id=0,promember=0,intervaldata = {}):
|
||||
hover.mode = 'mouse'
|
||||
hover.names = ["spm","pace"]
|
||||
|
||||
script, div = components(plot)
|
||||
script, div = components(layout)
|
||||
js_resources = INLINE.render_js()
|
||||
css_resources = INLINE.render_css()
|
||||
|
||||
return [script,div]
|
||||
return [script,div,js_resources,css_resources]
|
||||
|
||||
def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='',
|
||||
ploterrorbars=False,
|
||||
|
||||
Reference in New Issue
Block a user