Private
Public Access
1
0

Merge branch 'release/v9.56'

This commit is contained in:
Sander Roosendaal
2019-03-17 11:04:57 +01:00
2 changed files with 75 additions and 26 deletions

View File

@@ -457,7 +457,7 @@ def interactive_forcecurve(theworkouts,workstrokesonly=False):
)
plot = Figure(tools=TOOLS,
toolbar_sticky=False)
toolbar_sticky=False,toolbar_location="above")
# add watermark
watermarkurl = "/static/img/logo7.png"
@@ -493,49 +493,49 @@ def interactive_forcecurve(theworkouts,workstrokesonly=False):
plot.add_layout(avf)
peakflabel = Label(x=455,y=530,x_units='screen',y_units='screen',
peakflabel = Label(x=355,y=430,x_units='screen',y_units='screen',
text="Fpeak: {peakforceav:6.2f}".format(peakforceav=peakforceav),
background_fill_alpha=.7,
background_fill_color='white',
text_color='blue',
)
avflabel = Label(x=465,y=500,x_units='screen',y_units='screen',
avflabel = Label(x=365,y=400,x_units='screen',y_units='screen',
text="Favg: {averageforceav:6.2f}".format(averageforceav=averageforceav),
background_fill_alpha=.7,
background_fill_color='white',
text_color='blue',
)
catchlabel = Label(x=460,y=470,x_units='screen',y_units='screen',
catchlabel = Label(x=360,y=370,x_units='screen',y_units='screen',
text="Catch: {catchav:6.2f}".format(catchav=catchav),
background_fill_alpha=0.7,
background_fill_color='white',
text_color='red',
)
peakforceanglelabel = Label(x=420,y=440,x_units='screen',y_units='screen',
peakforceanglelabel = Label(x=320,y=340,x_units='screen',y_units='screen',
text="Peak angle: {peakforceangleav:6.2f}".format(peakforceangleav=peakforceangleav),
background_fill_alpha=0.7,
background_fill_color='white',
text_color='red',
)
finishlabel = Label(x=455,y=410,x_units='screen',y_units='screen',
finishlabel = Label(x=355,y=310,x_units='screen',y_units='screen',
text="Finish: {finishav:6.2f}".format(finishav=finishav),
background_fill_alpha=0.7,
background_fill_color='white',
text_color='red',
)
sliplabel = Label(x=470,y=380,x_units='screen',y_units='screen',
sliplabel = Label(x=370,y=280,x_units='screen',y_units='screen',
text="Slip: {slipav:6.2f}".format(slipav=slipav),
background_fill_alpha=0.7,
background_fill_color='white',
text_color='red',
)
washlabel = Label(x=460,y=350,x_units='screen',y_units='screen',
washlabel = Label(x=360,y=250,x_units='screen',y_units='screen',
text="Wash: {washav:6.2f}".format(washav=washav),
background_fill_alpha=0.7,
background_fill_color='white',
@@ -646,7 +646,8 @@ def interactive_forcecurve(theworkouts,workstrokesonly=False):
peakflabel.text = 'Fpeak: '+peakforceav.toFixed(2)
peakforceanglelabel.text = 'Peak angle: '+peakforceangleav.toFixed(2)
source.trigger('change');
// source.trigger('change');
source.change.emit();
""")
slider_spm_min = Slider(start=15.0, end=55,value=15.0, step=.1,
@@ -2813,7 +2814,6 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
if yparam2 != 'pace' and yparam2 != 'time':
plot.add_layout(y2label)
callback = CustomJS(args = dict(source=source,source2=source2,
x1means=x1means,
y1means=y1means,
@@ -2827,11 +2827,16 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
var y1 = data['y1']
var y2 = data['y2']
var spm1 = data['spm']
var index1 = data['index']
var distance1 = data['distance']
var power1 = data['power']
var driveenergy1 = data['driveenergy']
var xname = data['xname'][0]
var yname1 = data['yname1'][0]
var yname2 = data['yname2'][0]
var workoutid1 = data['workoutid'][0]
var minspm = minspm.value
var maxspm = maxspm.value
@@ -2846,14 +2851,18 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
data2['x1'] = []
data2['y1'] = []
data2['y2'] = []
data2['spm'] = []
data2['index'] = []
data2['distance'] = []
data2['power'] = []
data2['x1mean'] = []
data2['y1mean'] = []
data2['y2mean'] = []
data2['xvals'] = []
data2['y1vals'] = []
data2['y2vals'] = []
data2['driveenergy'] = []
data2['workoutid'] = []
data2['xname'] = []
data2['yname1'] = []
data2['yname2'] = []
data2['spm'] = []
for (i=0; i<x1.length; i++) {
if (spm1[i]>=minspm && spm1[i]<=maxspm) {
@@ -2863,7 +2872,14 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
data2['y1'].push(y1[i])
data2['y2'].push(y2[i])
data2['spm'].push(spm1[i])
data2['index'].push(index1[i])
data2['driveenergy'].push(driveenergy1[i])
data2['distance'].push(distance1[i])
data2['power'].push(power1[i])
data2['workoutid'].push(workoutid1)
data2['xname'].push(xname)
data2['yname1'].push(yname1)
data2['yname2'].push(yname2)
xm += x1[i]
ym1 += y1[i]
@@ -2873,13 +2889,17 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
}
}
xm /= data2['x1'].length
ym1 /= data2['x1'].length
ym2 /= data2['x1'].length
data2['x1mean'] = [xm,xm]
data2['y1mean'] = [ym1,ym1]
data2['y2mean'] = [ym2,ym2]
for (i=0; i<data2['x1'].length; i++) {
data2['x1mean'].push(xm)
data2['y1mean'].push(ym1)
data2['y2mean'].push(ym2)
}
x1means.location = xm
y1means.location = ym1
y2means.location = ym2
@@ -2887,7 +2907,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
y2label.text = yname2+': '+(ym2).toFixed(2)
xlabel.text = xname+': '+(xm).toFixed(2)
source2.trigger('change');
source2.change.emit();
""")
slider_spm_min = Slider(start=15.0, end=55,value=15.0, step=.1,
@@ -3353,6 +3373,10 @@ def interactive_flex_chart2(id=0,promember=0,
hover.mode = 'mouse'
x1meanline = [rowdata[xparam].mean(),rowdata[xparam].mean()]
y1meanline = [rowdata[yparam1].mean(),rowdata[yparam1].mean()]
y2meanline = [rowdata[yparam2].mean(),rowdata[yparam2].mean()]
callback = CustomJS(args = dict(source=source,source2=source2,
x1means=x1means,
@@ -3370,6 +3394,8 @@ def interactive_flex_chart2(id=0,promember=0,
var y2 = data['y2']
var spm1 = data['spm']
var time1 = data['time']
var ftime1 = data['ftime']
var index1 = data['index']
var pace1 = data['pace']
var hr1 = data['hr']
var fpace1 = data['fpace']
@@ -3379,6 +3405,9 @@ def interactive_flex_chart2(id=0,promember=0,
var xname = data['xname'][0]
var yname1 = data['yname1'][0]
var yname2 = data['yname2'][0]
var workoutid1 = data['workoutid'][0]
var workoutstate1 = data['workoutstate'][0]
var annotation = annotation.value
var minspm = minspm.value
@@ -3396,17 +3425,23 @@ def interactive_flex_chart2(id=0,promember=0,
data2['y2'] = []
data2['spm'] = []
data2['time'] = []
data2['ftime'] = []
data2['pace'] = []
data2['hr'] = []
data2['fpace'] = []
data2['index'] = []
data2['distance'] = []
data2['power'] = []
data2['x1mean'] = []
data2['y1mean'] = []
data2['y2mean'] = []
data2['xvals'] = []
data2['y1vals'] = []
data2['y2vals'] = []
data2['driveenergy'] = []
data2['workoutid'] = []
data2['workoutstate'] = []
data2['xname'] = []
data2['yname1'] = []
data2['yname2'] = []
for (i=0; i<x1.length; i++) {
if (spm1[i]>=minspm && spm1[i]<=maxspm) {
@@ -3417,11 +3452,20 @@ def interactive_flex_chart2(id=0,promember=0,
data2['y2'].push(y2[i])
data2['spm'].push(spm1[i])
data2['time'].push(time1[i])
data2['index'].push(index1[i])
data2['ftime'].push(ftime1[i])
data2['fpace'].push(fpace1[i])
data2['driveenergy'].push(driveenergy1[i])
data2['pace'].push(pace1[i])
data2['hr'].push(hr1[i])
data2['distance'].push(distance1[i])
data2['power'].push(power1[i])
data2['workoutid'].push(workoutid1)
data2['workoutstate'].push(workoutstate1)
data2['xname'].push(xname)
data2['yname1'].push(yname1)
data2['yname2'].push(yname2)
xm += x1[i]
ym1 += y1[i]
@@ -3435,9 +3479,14 @@ def interactive_flex_chart2(id=0,promember=0,
ym1 /= data2['x1'].length
ym2 /= data2['x1'].length
data2['x1mean'] = [xm,xm]
data2['y1mean'] = [ym1,ym1]
data2['y2mean'] = [ym2,ym2]
for (i=0; i<data2['x1'].length; i++) {
data2['x1mean'].push(xm)
data2['y1mean'].push(ym1)
data2['y2mean'].push(ym2)
}
x1means.location = xm
y1means.location = ym1
y2means.location = ym2
@@ -3446,7 +3495,7 @@ def interactive_flex_chart2(id=0,promember=0,
xlabel.text = xname+': '+xm.toFixed(2)
annolabel.text = annotation
source2.trigger('change');
source2.change.emit();
""")
annotation = TextInput(title="Type your plot notes here", value="",
@@ -3653,7 +3702,7 @@ def thumbnail_flex_chart(rowdata,id=0,promember=0,
else:
rowdata['yname2'] = axlabels[yparam1]
# prepare data
source = ColumnDataSource(
rowdata

Binary file not shown.