more pep
This commit is contained in:
@@ -1543,12 +1543,12 @@ def interactive_forcecurve(theworkouts, workstrokesonly=True, plottype='scatter'
|
|||||||
)
|
)
|
||||||
#thesliders.sizing_mode = 'fixed'
|
#thesliders.sizing_mode = 'fixed'
|
||||||
|
|
||||||
layout = layoutrow([thesliders,
|
mylayout = layoutrow([thesliders,
|
||||||
plot])
|
plot])
|
||||||
|
|
||||||
layout.sizing_mode = 'stretch_both'
|
mylayout.sizing_mode = 'stretch_both'
|
||||||
|
|
||||||
script, div = components(layout)
|
script, div = components(mylayout)
|
||||||
js_resources = INLINE.render_js()
|
js_resources = INLINE.render_js()
|
||||||
css_resources = INLINE.render_css()
|
css_resources = INLINE.render_css()
|
||||||
|
|
||||||
@@ -2036,11 +2036,11 @@ def performance_chart(user, startdate=None, enddate=None, kfitness=42, kfatigue=
|
|||||||
plot.add_tools(linked_crosshair)
|
plot.add_tools(linked_crosshair)
|
||||||
plot2.add_tools(linked_crosshair)
|
plot2.add_tools(linked_crosshair)
|
||||||
|
|
||||||
layout = layoutcolumn([plot, plot2])
|
mylayout = layoutcolumn([plot, plot2])
|
||||||
layout.sizing_mode = 'stretch_both'
|
mylayout.sizing_mode = 'stretch_both'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
script, div = components(layout)
|
script, div = components(mylayout)
|
||||||
except Exception as e: # pragma: no cover
|
except Exception as e: # pragma: no cover
|
||||||
df.dropna(inplace=True, axis=0, how='any')
|
df.dropna(inplace=True, axis=0, how='any')
|
||||||
return (
|
return (
|
||||||
@@ -2190,10 +2190,10 @@ def interactive_histoall(theworkouts, histoparam, includereststrokes,
|
|||||||
annotation.js_on_change('value', callback)
|
annotation.js_on_change('value', callback)
|
||||||
callback.args["annotation"] = annotation
|
callback.args["annotation"] = annotation
|
||||||
|
|
||||||
layout = layoutcolumn([annotation, plot])
|
mylayout = layoutcolumn([annotation, plot])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
script, div = components(layout)
|
script, div = components(mylayout)
|
||||||
except ValueError: # pragma: no cover
|
except ValueError: # pragma: no cover
|
||||||
script = ''
|
script = ''
|
||||||
div = ''
|
div = ''
|
||||||
@@ -3101,8 +3101,6 @@ def leaflet_chart_video(lat, lon, name=""):
|
|||||||
lonmean = lon.mean()
|
lonmean = lon.mean()
|
||||||
latbegin = lat[lat.index[0]]
|
latbegin = lat[lat.index[0]]
|
||||||
longbegin = lon[lon.index[0]]
|
longbegin = lon[lon.index[0]]
|
||||||
latend = lat[lat.index[-1]]
|
|
||||||
longend = lon[lon.index[-1]]
|
|
||||||
|
|
||||||
coordinates = zip(lat, lon)
|
coordinates = zip(lat, lon)
|
||||||
|
|
||||||
@@ -3201,9 +3199,7 @@ def leaflet_chart_video(lat, lon, name=""):
|
|||||||
latmean=latmean,
|
latmean=latmean,
|
||||||
lonmean=lonmean,
|
lonmean=lonmean,
|
||||||
latbegin=latbegin,
|
latbegin=latbegin,
|
||||||
latend=latend,
|
|
||||||
longbegin=longbegin,
|
longbegin=longbegin,
|
||||||
longend=longend,
|
|
||||||
scoordinates=scoordinates,
|
scoordinates=scoordinates,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -3350,10 +3346,11 @@ def interactive_agegroupcpchart(age, normalized=False):
|
|||||||
mhduration.append(60.*duration)
|
mhduration.append(60.*duration)
|
||||||
mhpower.append(np.nan)
|
mhpower.append(np.nan)
|
||||||
|
|
||||||
def fitfunc(pars, x): return pars[0] / \
|
def fitfunc(pars, x):
|
||||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||||
|
|
||||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
def errfunc(pars, x, y):
|
||||||
|
return fitfunc(pars, x)-y
|
||||||
|
|
||||||
# p0 = [500,350,10,8000]
|
# p0 = [500,350,10,8000]
|
||||||
|
|
||||||
@@ -3444,7 +3441,6 @@ def interactive_agegroupcpchart(age, normalized=False):
|
|||||||
)
|
)
|
||||||
|
|
||||||
x_axis_type = 'log'
|
x_axis_type = 'log'
|
||||||
y_axis_type = 'linear'
|
|
||||||
|
|
||||||
TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||||
|
|
||||||
@@ -3500,7 +3496,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||||
|
|
||||||
x_axis_type = 'log'
|
x_axis_type = 'log'
|
||||||
y_axis_type = 'linear'
|
|
||||||
|
|
||||||
deltas = powerdf2['Delta'].apply(lambda x: timedeltaconv(x))
|
deltas = powerdf2['Delta'].apply(lambda x: timedeltaconv(x))
|
||||||
powerdf2['ftime'] = deltas.apply(lambda x: strfdelta(x))
|
powerdf2['ftime'] = deltas.apply(lambda x: strfdelta(x))
|
||||||
@@ -3524,8 +3519,9 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
p1 = [r.ep0, r.ep1, r.ep2, r.ep3]
|
p1 = [r.ep0, r.ep1, r.ep2, r.ep3]
|
||||||
ratio = r.ecpratio
|
ratio = r.ecpratio
|
||||||
|
|
||||||
def fitfunc(pars, x): return abs(
|
def fitfunc(pars, x):
|
||||||
pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3])))
|
return abs(pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3])))
|
||||||
|
|
||||||
fitpower = fitfunc(p1, fitt)
|
fitpower = fitfunc(p1, fitt)
|
||||||
|
|
||||||
message = ""
|
message = ""
|
||||||
@@ -3534,8 +3530,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
|
|
||||||
deltas = fitt.apply(lambda x: timedeltaconv(x))
|
deltas = fitt.apply(lambda x: timedeltaconv(x))
|
||||||
ftime = niceformat(deltas)
|
ftime = niceformat(deltas)
|
||||||
workouts = powerdf2['workout']
|
|
||||||
urls = powerdf2['url']
|
|
||||||
|
|
||||||
# add world class
|
# add world class
|
||||||
wcpower = pd.Series(wcpower, dtype='float')
|
wcpower = pd.Series(wcpower, dtype='float')
|
||||||
@@ -3543,10 +3537,12 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
|
|
||||||
# fitting WC data to three parameter CP model
|
# fitting WC data to three parameter CP model
|
||||||
if len(wcdurations) >= 4: # pragma: no cover
|
if len(wcdurations) >= 4: # pragma: no cover
|
||||||
def fitfunc(pars, x): return pars[0] / \
|
def fitfunc(pars, x):
|
||||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||||
|
|
||||||
|
def errfunc(pars, x, y):
|
||||||
|
return fitfunc(pars, x)-y
|
||||||
|
|
||||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
|
||||||
p1wc, success = optimize.leastsq(errfunc, p0[:],
|
p1wc, success = optimize.leastsq(errfunc, p0[:],
|
||||||
args=(wcdurations, wcpower))
|
args=(wcdurations, wcpower))
|
||||||
else:
|
else:
|
||||||
@@ -3582,13 +3578,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
sourceannot = ColumnDataSource(
|
|
||||||
data=dict(
|
|
||||||
workout=workouts,
|
|
||||||
url=urls,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# making the plot
|
# making the plot
|
||||||
plot = Figure(tools=TOOLS, x_axis_type=x_axis_type,
|
plot = Figure(tools=TOOLS, x_axis_type=x_axis_type,
|
||||||
plot_width=900,
|
plot_width=900,
|
||||||
@@ -3597,12 +3586,8 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
|
||||||
watermarky = 0.01
|
watermarky = 0.01
|
||||||
watermarkw = 184
|
watermarkw = 184
|
||||||
watermarkh = 35
|
watermarkh = 35
|
||||||
@@ -3705,10 +3690,12 @@ def interactive_agegroup_plot(df, distance=2000, duration=None,
|
|||||||
# poly_vals = np.polyval(poly_coefficients,age2)
|
# poly_vals = np.polyval(poly_coefficients,age2)
|
||||||
# poly_vals = 0.5*(np.abs(poly_vals)+poly_vals)
|
# poly_vals = 0.5*(np.abs(poly_vals)+poly_vals)
|
||||||
|
|
||||||
def fitfunc(pars, x): return np.abs(pars[0])*(1-x/max(120, pars[1]))-np.abs(
|
def fitfunc(pars, x):
|
||||||
pars[2])*np.exp(-x/np.abs(pars[3]))+np.abs(pars[4])*(np.sin(np.pi*x/max(50, pars[5])))
|
return np.abs(pars[0])*(1-x/max(120, pars[1])) \
|
||||||
|
- np.abs(pars[2])*np.exp(-x/np.abs(pars[3]))+np.abs(pars[4])*(np.sin(np.pi*x/max(50, pars[5])))
|
||||||
|
|
||||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
def errfunc(pars, x, y):
|
||||||
|
return fitfunc(pars, x)-y
|
||||||
|
|
||||||
p0age = [700, 120, 700, 10, 100, 100]
|
p0age = [700, 120, 700, 10, 100, 100]
|
||||||
|
|
||||||
@@ -3722,8 +3709,6 @@ def interactive_agegroup_plot(df, distance=2000, duration=None,
|
|||||||
data=dict(
|
data=dict(
|
||||||
age=age,
|
age=age,
|
||||||
power=power,
|
power=power,
|
||||||
#age2 = age2,
|
|
||||||
#expo_vals = expo_vals,
|
|
||||||
season=season,
|
season=season,
|
||||||
name=name,
|
name=name,
|
||||||
)
|
)
|
||||||
@@ -3774,7 +3759,6 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
|||||||
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||||
|
|
||||||
x_axis_type = 'log'
|
x_axis_type = 'log'
|
||||||
y_axis_type = 'linear'
|
|
||||||
|
|
||||||
thesecs = pd.Series(thesecs)
|
thesecs = pd.Series(thesecs)
|
||||||
|
|
||||||
@@ -3828,10 +3812,11 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def fitfunc(pars, x): return pars[0] / \
|
def fitfunc(pars, x):
|
||||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||||
|
|
||||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
def errfunc(pars, x, y):
|
||||||
|
return fitfunc(pars, x)-y
|
||||||
|
|
||||||
# p0 = [500,350,10,8000]
|
# p0 = [500,350,10,8000]
|
||||||
wcpower = pd.Series(wcpower, dtype='float')
|
wcpower = pd.Series(wcpower, dtype='float')
|
||||||
@@ -3863,28 +3848,19 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
|||||||
|
|
||||||
# Get stayer score
|
# Get stayer score
|
||||||
if success == 1: # pragma: no cover
|
if success == 1: # pragma: no cover
|
||||||
power1min = fitfunc(p1, 60.)
|
|
||||||
power4min = fitfunc(p1, 240.)
|
power4min = fitfunc(p1, 240.)
|
||||||
power6min = fitfunc(p1, 360.)
|
|
||||||
power30min = fitfunc(p1, 1800.)
|
|
||||||
power1h = fitfunc(p1, 3600.)
|
power1h = fitfunc(p1, 3600.)
|
||||||
power10sec = fitfunc(p1, 10.)
|
power10sec = fitfunc(p1, 10.)
|
||||||
r10sec4min = 100.*power10sec/power4min
|
r10sec4min = 100.*power10sec/power4min
|
||||||
r1h4min = 100.*power1h/power4min
|
r1h4min = 100.*power1h/power4min
|
||||||
r1min6min = 100.*power1min/power6min
|
|
||||||
r30min6min = 100.*power30min/power6min
|
|
||||||
|
|
||||||
combined = r1h4min-0.2*(r10sec4min-100)
|
combined = r1h4min-0.2*(r10sec4min-100)
|
||||||
combined2 = r30min6min-1.5*(r1min6min-100)
|
|
||||||
|
|
||||||
dataset = pd.read_csv('static/stats/combined_set.csv')
|
dataset = pd.read_csv('static/stats/combined_set.csv')
|
||||||
dataset2 = pd.read_csv('static/stats/combined_set6min.csv')
|
|
||||||
|
|
||||||
stayerscore = int(percentileofscore(dataset['combined'], combined))
|
stayerscore = int(percentileofscore(dataset['combined'], combined))
|
||||||
stayerscore2 = int(percentileofscore(dataset2['combined'], combined2))
|
|
||||||
else:
|
else:
|
||||||
stayerscore = None
|
stayerscore = None
|
||||||
stayerscore2 = None
|
|
||||||
|
|
||||||
fitt = pd.Series(10**(4*np.arange(100)/100.))
|
fitt = pd.Series(10**(4*np.arange(100)/100.))
|
||||||
|
|
||||||
@@ -3938,12 +3914,8 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
|
||||||
watermarky = 0.01
|
watermarky = 0.01
|
||||||
watermarkw = 184
|
watermarkw = 184
|
||||||
watermarkh = 35
|
watermarkh = 35
|
||||||
@@ -4069,7 +4041,6 @@ def interactive_windchart(id=0, promember=0):
|
|||||||
# get user
|
# get user
|
||||||
# u = User.objects.get(id=row.user.id)
|
# u = User.objects.get(id=row.user.id)
|
||||||
r = row.user
|
r = row.user
|
||||||
u = r.user
|
|
||||||
|
|
||||||
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
||||||
hrut1=r.ut1, hrat=r.at,
|
hrut1=r.ut1, hrat=r.at,
|
||||||
@@ -4158,7 +4129,6 @@ def interactive_streamchart(id=0, promember=0):
|
|||||||
# get user
|
# get user
|
||||||
# u = User.objects.get(id=row.user.id)
|
# u = User.objects.get(id=row.user.id)
|
||||||
r = row.user
|
r = row.user
|
||||||
u = r.user
|
|
||||||
|
|
||||||
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
||||||
hrut1=r.ut1, hrat=r.at,
|
hrut1=r.ut1, hrat=r.at,
|
||||||
@@ -4223,12 +4193,12 @@ def interactive_chart(id=0, promember=0, intervaldata={}):
|
|||||||
return "", "No Valid Data Available"
|
return "", "No Valid Data Available"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
spm = datadf['spm']
|
_ = datadf['spm']
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
datadf['spm'] = 0
|
datadf['spm'] = 0
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pace = datadf['pace']
|
_ = datadf['pace']
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
datadf['pace'] = 0
|
datadf['pace'] = 0
|
||||||
|
|
||||||
@@ -4244,16 +4214,10 @@ def interactive_chart(id=0, promember=0, intervaldata={}):
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
|
||||||
watermarky = 0.01
|
|
||||||
watermarkw = 184
|
watermarkw = 184
|
||||||
watermarkh = 35
|
watermarkh = 35
|
||||||
watermarkanchor = 'bottom_right'
|
|
||||||
plot.extra_y_ranges = {"watermark": watermarkrange}
|
plot.extra_y_ranges = {"watermark": watermarkrange}
|
||||||
plot.extra_x_ranges = {"watermark": watermarkrange}
|
plot.extra_x_ranges = {"watermark": watermarkrange}
|
||||||
|
|
||||||
@@ -4476,7 +4440,7 @@ def interactive_multiflex(datadf, xparam, yparam, groupby, extratitle='',
|
|||||||
else:
|
else:
|
||||||
groupname = axlabels[groupby]
|
groupname = axlabels[groupby]
|
||||||
|
|
||||||
if title == None:
|
if title is None:
|
||||||
title = '{y} vs {x} grouped by {gr}'.format(
|
title = '{y} vs {x} grouped by {gr}'.format(
|
||||||
x=xparamname,
|
x=xparamname,
|
||||||
y=yparamname,
|
y=yparamname,
|
||||||
@@ -4555,9 +4519,6 @@ def interactive_multiflex(datadf, xparam, yparam, groupby, extratitle='',
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
watermarkx = 0.99
|
||||||
@@ -4683,12 +4644,12 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
workstrokesonly=workstrokesonly)
|
workstrokesonly=workstrokesonly)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tests = datadf[yparam2]
|
_ = datadf[yparam2]
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
yparam2 = 'None'
|
yparam2 = 'None'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tests = datadf[yparam1]
|
_ = datadf[yparam1]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
yparam1 = 'None'
|
yparam1 = 'None'
|
||||||
|
|
||||||
@@ -4696,18 +4657,14 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
datadf.dropna(axis=0, how='any', inplace=True)
|
datadf.dropna(axis=0, how='any', inplace=True)
|
||||||
|
|
||||||
# test if we have drive energy
|
# test if we have drive energy
|
||||||
nowork = 1
|
|
||||||
try: # pragma: no cover
|
try: # pragma: no cover
|
||||||
test = datadf['driveenergy'].mean()
|
_ = datadf['driveenergy'].mean()
|
||||||
nowork = 0
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
datadf['driveenergy'] = 500.
|
datadf['driveenergy'] = 500.
|
||||||
|
|
||||||
# test if we have power
|
# test if we have power
|
||||||
nopower = 1
|
|
||||||
try: # pragma: no cover
|
try: # pragma: no cover
|
||||||
test = datadf['power'].mean()
|
_ = datadf['power'].mean()
|
||||||
nopower = 0
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
datadf['power'] = 50.
|
datadf['power'] = 50.
|
||||||
|
|
||||||
@@ -4745,21 +4702,12 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
datadf['y2'] = datadf['y1']
|
datadf['y2'] = datadf['y1']
|
||||||
|
|
||||||
if xparam == 'distance': # pragma: no cover
|
|
||||||
xaxmax = datadf['x1'].max()
|
|
||||||
xaxmin = datadf['x1'].min()
|
|
||||||
else:
|
|
||||||
xaxmax = yaxmaxima[xparam]
|
|
||||||
xaxmin = yaxminima[xparam]
|
|
||||||
|
|
||||||
# average values
|
# average values
|
||||||
x1mean = datadf['x1'].mean()
|
x1mean = datadf['x1'].mean()
|
||||||
|
|
||||||
y1mean = datadf['y1'].mean()
|
y1mean = datadf['y1'].mean()
|
||||||
y2mean = datadf['y2'].mean()
|
y2mean = datadf['y2'].mean()
|
||||||
|
|
||||||
xvals = pd.Series(xaxmin+np.arange(100)*(xaxmax-xaxmin)/100.)
|
|
||||||
|
|
||||||
x_axis_type = 'linear'
|
x_axis_type = 'linear'
|
||||||
y_axis_type = 'linear'
|
y_axis_type = 'linear'
|
||||||
if xparam == 'time':
|
if xparam == 'time':
|
||||||
@@ -4797,9 +4745,6 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
watermarkx = 0.99
|
||||||
@@ -5041,13 +4986,6 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
slider_dist_max.js_on_change('value', callback)
|
slider_dist_max.js_on_change('value', callback)
|
||||||
callback.args["maxdist"] = slider_dist_max
|
callback.args["maxdist"] = slider_dist_max
|
||||||
|
|
||||||
#slider_spm_min.sizing_mode = 'fixed'
|
|
||||||
#slider_spm_max.sizing_mode = 'fixed'
|
|
||||||
#slider_work_min.sizing_mode = 'fixed'
|
|
||||||
#slider_work_max.sizing_mode = 'fixed'
|
|
||||||
#slider_dist_min.sizing_mode = 'fixed'
|
|
||||||
#slider_dist_max.sizing_mode = 'fixed'
|
|
||||||
|
|
||||||
thesliders = layoutcolumn([slider_spm_min,
|
thesliders = layoutcolumn([slider_spm_min,
|
||||||
slider_spm_max,
|
slider_spm_max,
|
||||||
slider_dist_min,
|
slider_dist_min,
|
||||||
@@ -5057,14 +4995,11 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
#thesliders.sizing_mode = 'fixed'
|
mylayout = layoutrow([thesliders, plot])
|
||||||
|
|
||||||
layout = layoutrow([thesliders,
|
mylayout.sizing_mode = 'stretch_both'
|
||||||
plot])
|
|
||||||
|
|
||||||
layout.sizing_mode = 'stretch_both'
|
script, div = components(mylayout)
|
||||||
|
|
||||||
script, div = components(layout)
|
|
||||||
js_resources = INLINE.render_js()
|
js_resources = INLINE.render_js()
|
||||||
css_resources = INLINE.render_css()
|
css_resources = INLINE.render_css()
|
||||||
|
|
||||||
@@ -5104,7 +5039,6 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
|||||||
doclean=False,
|
doclean=False,
|
||||||
workstrokesonly=False)
|
workstrokesonly=False)
|
||||||
|
|
||||||
row = Workout.objects.get(id=id)
|
|
||||||
if rowdata.empty:
|
if rowdata.empty:
|
||||||
return "", "No valid data", '', '', comment
|
return "", "No valid data", '', '', comment
|
||||||
|
|
||||||
@@ -5115,34 +5049,29 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['x1'] = rowdata.loc[:, xparam]
|
rowdata['x1'] = rowdata.loc[:, xparam]
|
||||||
rowmin = rowdata[xparam].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['y1'] = rowdata.loc[:, yparam1]
|
rowdata['y1'] = rowdata.loc[:, yparam1]
|
||||||
rowmin = rowdata[yparam1].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam1] = rowdata['y1']
|
rowdata[yparam1] = rowdata['y1']
|
||||||
|
|
||||||
try: # pragma: no cover
|
try: # pragma: no cover
|
||||||
rowdata['y2'] = rowdata.loc[:, yparam2]
|
rowdata['y2'] = rowdata.loc[:, yparam2]
|
||||||
rowmin = rowdata[yparam2].min()
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam2] = rowdata['y2']
|
rowdata[yparam2] = rowdata['y2']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['y3'] = rowdata.loc[:, yparam3]
|
rowdata['y3'] = rowdata.loc[:, yparam3]
|
||||||
rowmin = rowdata[yparam3].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['y3'] = 0*rowdata.loc[:, 'time']
|
rowdata['y3'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam3] = rowdata['y3']
|
rowdata[yparam3] = rowdata['y3']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['y4'] = rowdata.loc[:, yparam4]
|
rowdata['y4'] = rowdata.loc[:, yparam4]
|
||||||
rowmin = rowdata[yparam4].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['y4'] = 0*rowdata.loc[:, 'time']
|
rowdata['y4'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam4] = rowdata['y4']
|
rowdata[yparam4] = rowdata['y4']
|
||||||
@@ -5418,16 +5347,16 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
|||||||
plot3.line('x1', 'y3', source=source, color=palette2[0])
|
plot3.line('x1', 'y3', source=source, color=palette2[0])
|
||||||
plot4.line('x1', 'y4', source=source, color=palette2[2])
|
plot4.line('x1', 'y4', source=source, color=palette2[2])
|
||||||
|
|
||||||
layout = layoutcolumn([
|
mylayout = layoutcolumn([
|
||||||
plot1,
|
plot1,
|
||||||
plot2,
|
plot2,
|
||||||
plot3,
|
plot3,
|
||||||
plot4,
|
plot4,
|
||||||
])
|
])
|
||||||
|
|
||||||
layout.sizing_mode = 'stretch_both'
|
mylayout.sizing_mode = 'stretch_both'
|
||||||
|
|
||||||
script, div = components(layout)
|
script, div = components(mylayout)
|
||||||
js_resources = INLINE.render_js()
|
js_resources = INLINE.render_js()
|
||||||
css_resources = INLINE.render_css()
|
css_resources = INLINE.render_css()
|
||||||
|
|
||||||
@@ -5443,9 +5372,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
mode='rower'):
|
mode='rower'):
|
||||||
|
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
watermarkx = 0.99
|
||||||
@@ -5454,7 +5380,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
watermarkh = 35
|
watermarkh = 35
|
||||||
watermarkanchor = 'bottom_right'
|
watermarkanchor = 'bottom_right'
|
||||||
|
|
||||||
#rowdata,row = dataprep.getrowdata_db(id=id)
|
|
||||||
columns = [xparam, yparam1, yparam2,
|
columns = [xparam, yparam1, yparam2,
|
||||||
'ftime', 'distance', 'fpace',
|
'ftime', 'distance', 'fpace',
|
||||||
'power', 'hr', 'spm', 'driveenergy',
|
'power', 'hr', 'spm', 'driveenergy',
|
||||||
@@ -5484,28 +5409,24 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
workstrokesonly=False)
|
workstrokesonly=False)
|
||||||
workstrokesonly = False
|
workstrokesonly = False
|
||||||
try:
|
try:
|
||||||
tests = rowdata[yparam2]
|
_ = rowdata[yparam2]
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
yparam2 = 'None'
|
yparam2 = 'None'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tests = rowdata[yparam1]
|
_ = rowdata[yparam1]
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
yparam1 = 'None'
|
yparam1 = 'None'
|
||||||
|
|
||||||
# test if we have drive energy
|
# test if we have drive energy
|
||||||
nowork = 1
|
|
||||||
try:
|
try:
|
||||||
test = rowdata['driveenergy'].mean()
|
_ = rowdata['driveenergy'].mean()
|
||||||
nowork = 0
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
rowdata['driveenergy'] = 500.
|
rowdata['driveenergy'] = 500.
|
||||||
|
|
||||||
# test if we have power
|
# test if we have power
|
||||||
nopower = 1
|
|
||||||
try:
|
try:
|
||||||
test = rowdata['power'].mean()
|
_ = rowdata['power'].mean()
|
||||||
nopower = 0
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
rowdata['power'] = 50.
|
rowdata['power'] = 50.
|
||||||
|
|
||||||
@@ -5516,9 +5437,7 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
if rowdata.empty:
|
if rowdata.empty:
|
||||||
return "", "No valid data", '', '', workstrokesonly
|
return "", "No valid data", '', '', workstrokesonly
|
||||||
|
|
||||||
workoutstateswork = [1, 4, 5, 8, 9, 6, 7]
|
|
||||||
workoutstatesrest = [3]
|
workoutstatesrest = [3]
|
||||||
workoutstatetransition = [0, 2, 10, 11, 12, 13]
|
|
||||||
|
|
||||||
if workstrokesonly: # pragma: no cover
|
if workstrokesonly: # pragma: no cover
|
||||||
try:
|
try:
|
||||||
@@ -5533,13 +5452,11 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['x1'] = rowdata.loc[:, xparam]
|
rowdata['x1'] = rowdata.loc[:, xparam]
|
||||||
rowmin = rowdata[xparam].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rowdata['y1'] = rowdata.loc[:, yparam1]
|
rowdata['y1'] = rowdata.loc[:, yparam1]
|
||||||
rowmin = rowdata[yparam1].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam1] = rowdata['y1']
|
rowdata[yparam1] = rowdata['y1']
|
||||||
@@ -5547,7 +5464,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
if yparam2 != 'None':
|
if yparam2 != 'None':
|
||||||
try:
|
try:
|
||||||
rowdata['y2'] = rowdata.loc[:, yparam2]
|
rowdata['y2'] = rowdata.loc[:, yparam2]
|
||||||
rowmin = rowdata[yparam2].min()
|
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
||||||
rowdata[yparam2] = rowdata['y2']
|
rowdata[yparam2] = rowdata['y2']
|
||||||
@@ -5639,13 +5555,9 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
toolbar_sticky=False, plot_width=800, plot_height=600,
|
toolbar_sticky=False, plot_width=800, plot_height=600,
|
||||||
)
|
)
|
||||||
plot.sizing_mode = 'stretch_both'
|
plot.sizing_mode = 'stretch_both'
|
||||||
#plot.width_policy = 'max'
|
|
||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
watermarkx = 0.99
|
||||||
@@ -6005,14 +5917,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
slider_dist_max.js_on_change('value', callback)
|
slider_dist_max.js_on_change('value', callback)
|
||||||
callback.args["maxdist"] = slider_dist_max
|
callback.args["maxdist"] = slider_dist_max
|
||||||
|
|
||||||
#annotation.sizing_mode = 'fixed'
|
|
||||||
#slider_spm_min.sizing_mode = 'fixed'
|
|
||||||
#slider_spm_max.sizing_mode = 'fixed'
|
|
||||||
#slider_work_min.sizing_mode = 'fixed'
|
|
||||||
#slider_work_max.sizing_mode = 'fixed'
|
|
||||||
#slider_dist_min.sizing_mode = 'fixed'
|
|
||||||
#slider_dist_max.sizing_mode = 'fixed'
|
|
||||||
|
|
||||||
thesliders = layoutcolumn([
|
thesliders = layoutcolumn([
|
||||||
annotation,
|
annotation,
|
||||||
slider_spm_min,
|
slider_spm_min,
|
||||||
@@ -6023,15 +5927,12 @@ def interactive_flex_chart2(id, r, promember=0,
|
|||||||
slider_work_max,
|
slider_work_max,
|
||||||
])
|
])
|
||||||
|
|
||||||
#thesliders.sizing_mode = 'fixed'
|
mylayout = layoutrow([thesliders, plot])
|
||||||
|
|
||||||
layout = layoutrow([thesliders,
|
|
||||||
plot])
|
|
||||||
|
|
||||||
# layout.sizing_mode = 'stretch_both'
|
# layout.sizing_mode = 'stretch_both'
|
||||||
layout.sizing_mode = 'stretch_both'
|
mylayout.sizing_mode = 'stretch_both'
|
||||||
|
|
||||||
script, div = components(layout)
|
script, div = components(mylayout)
|
||||||
js_resources = INLINE.render_js()
|
js_resources = INLINE.render_js()
|
||||||
css_resources = INLINE.render_css()
|
css_resources = INLINE.render_css()
|
||||||
|
|
||||||
@@ -6074,9 +5975,9 @@ def thumbnails_set(r, id, favorites):
|
|||||||
# except KeyError:
|
# except KeyError:
|
||||||
# pass
|
# pass
|
||||||
|
|
||||||
l = len(rowdata)
|
lengte = len(rowdata)
|
||||||
maxlength = 50
|
maxlength = 50
|
||||||
if l > maxlength:
|
if lengte > maxlength:
|
||||||
try:
|
try:
|
||||||
bins = np.linspace(rowdata['time'].min(),
|
bins = np.linspace(rowdata['time'].min(),
|
||||||
rowdata['time'].max(), maxlength)
|
rowdata['time'].max(), maxlength)
|
||||||
@@ -6086,7 +5987,6 @@ def thumbnails_set(r, id, favorites):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
for f in favorites:
|
for f in favorites:
|
||||||
workstrokesonly = not f.reststrokes
|
|
||||||
script, div = thumbnail_flex_chart(
|
script, div = thumbnail_flex_chart(
|
||||||
rowdata,
|
rowdata,
|
||||||
id=id,
|
id=id,
|
||||||
@@ -6112,12 +6012,12 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
|||||||
workstrokesonly=False):
|
workstrokesonly=False):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tests = rowdata[yparam2]
|
_ = rowdata[yparam2]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
yparam2 = 'None'
|
yparam2 = 'None'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tests = rowdata[yparam1]
|
_ = rowdata[yparam1]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
yparam1 = 'None'
|
yparam1 = 'None'
|
||||||
|
|
||||||
@@ -6161,7 +6061,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
|||||||
|
|
||||||
if yparam1 == 'pace': # pragma: no cover
|
if yparam1 == 'pace': # pragma: no cover
|
||||||
y_axis_type = 'datetime'
|
y_axis_type = 'datetime'
|
||||||
y1mean = rowdata.loc[:, 'pace'].mean()
|
|
||||||
|
|
||||||
rowdata['xname'] = axlabels[xparam]
|
rowdata['xname'] = axlabels[xparam]
|
||||||
try:
|
try:
|
||||||
@@ -6178,7 +6077,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
|||||||
rowdata
|
rowdata
|
||||||
)
|
)
|
||||||
|
|
||||||
sizing_mode = 'fixed' # 'stretch_both' also looks nice with this example
|
|
||||||
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
||||||
plot_width=200, plot_height=150,
|
plot_width=200, plot_height=150,
|
||||||
)
|
)
|
||||||
@@ -6188,7 +6086,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
|||||||
plot.sizing_mode = 'fixed'
|
plot.sizing_mode = 'fixed'
|
||||||
plot.toolbar.logo = None
|
plot.toolbar.logo = None
|
||||||
plot.toolbar_location = None
|
plot.toolbar_location = None
|
||||||
#plot.yaxis.visible = False
|
|
||||||
plot.xaxis.axis_label_text_font_size = "7pt"
|
plot.xaxis.axis_label_text_font_size = "7pt"
|
||||||
plot.yaxis.axis_label_text_font_size = "7pt"
|
plot.yaxis.axis_label_text_font_size = "7pt"
|
||||||
plot.xaxis.major_label_text_font_size = "7pt"
|
plot.xaxis.major_label_text_font_size = "7pt"
|
||||||
@@ -6297,12 +6194,6 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
|||||||
except:
|
except:
|
||||||
return ['', '<p>A chart data error occurred</p>', '', 'A chart data error occurred']
|
return ['', '<p>A chart data error occurred</p>', '', 'A chart data error occurred']
|
||||||
|
|
||||||
yparamname = axlabels[yparam]
|
|
||||||
|
|
||||||
#datadf = datadf[datadf[yparam] > 0]
|
|
||||||
|
|
||||||
#datadf = datadf[datadf[xparam] > 0]
|
|
||||||
|
|
||||||
# check if dataframe not empty
|
# check if dataframe not empty
|
||||||
if datadf.empty: # pragma: no cover
|
if datadf.empty: # pragma: no cover
|
||||||
return ['', '<p>No non-zero data in selection</p>', '', 'No non-zero data in selection']
|
return ['', '<p>No non-zero data in selection</p>', '', 'No non-zero data in selection']
|
||||||
@@ -6350,11 +6241,6 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
|||||||
if xparam == 'time':
|
if xparam == 'time':
|
||||||
x_axis_type = 'datetime'
|
x_axis_type = 'datetime'
|
||||||
|
|
||||||
if xparam != 'time':
|
|
||||||
xvals = xaxmin+np.arange(100)*(xaxmax-xaxmin)/100.
|
|
||||||
else:
|
|
||||||
xvals = np.arange(100)
|
|
||||||
|
|
||||||
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
||||||
tools=TOOLS,
|
tools=TOOLS,
|
||||||
toolbar_location="above",
|
toolbar_location="above",
|
||||||
@@ -6363,16 +6249,10 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
|
||||||
watermarky = 0.01
|
|
||||||
watermarkw = 184
|
watermarkw = 184
|
||||||
watermarkh = 35
|
watermarkh = 35
|
||||||
watermarkanchor = 'bottom_right'
|
|
||||||
plot.extra_y_ranges = {"watermark": watermarkrange}
|
plot.extra_y_ranges = {"watermark": watermarkrange}
|
||||||
plot.extra_x_ranges = {"watermark": watermarkrange}
|
plot.extra_x_ranges = {"watermark": watermarkrange}
|
||||||
plot.sizing_mode = 'stretch_both'
|
plot.sizing_mode = 'stretch_both'
|
||||||
@@ -6475,7 +6355,7 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
|||||||
try:
|
try:
|
||||||
legend_label = labeldict[id]
|
legend_label = labeldict[id]
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
legend = str(id)
|
legend_label = str(id)
|
||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
legend_label = str(id)
|
legend_label = str(id)
|
||||||
|
|
||||||
@@ -6549,9 +6429,6 @@ def interactive_otw_advanced_pace_chart(id=0, promember=0):
|
|||||||
|
|
||||||
# add watermark
|
# add watermark
|
||||||
watermarkurl = "/static/img/logo7.png"
|
watermarkurl = "/static/img/logo7.png"
|
||||||
watermarksource = ColumnDataSource(dict(
|
|
||||||
url=[watermarkurl],))
|
|
||||||
|
|
||||||
watermarkrange = Range1d(start=0, end=1)
|
watermarkrange = Range1d(start=0, end=1)
|
||||||
watermarkalpha = 0.6
|
watermarkalpha = 0.6
|
||||||
watermarkx = 0.99
|
watermarkx = 0.99
|
||||||
@@ -6625,10 +6502,6 @@ def interactive_otw_advanced_pace_chart(id=0, promember=0):
|
|||||||
def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='week',
|
def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='week',
|
||||||
yaxis='time'):
|
yaxis='time'):
|
||||||
|
|
||||||
duration = enddate-startdate
|
|
||||||
|
|
||||||
totaldays = duration.total_seconds()/(24*3600)
|
|
||||||
|
|
||||||
dates = []
|
dates = []
|
||||||
dates_sorting = []
|
dates_sorting = []
|
||||||
minutes = []
|
minutes = []
|
||||||
@@ -6657,14 +6530,10 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we
|
|||||||
df = dataprep.clean_df_stats(df, workstrokesonly=False,
|
df = dataprep.clean_df_stats(df, workstrokesonly=False,
|
||||||
ignoreadvanced=True, ignorehr=False)
|
ignoreadvanced=True, ignorehr=False)
|
||||||
|
|
||||||
#totalmeters,totalhours, totalminutes, totalseconds = get_totals(workouts)
|
|
||||||
|
|
||||||
hrzones = rower.hrzones
|
hrzones = rower.hrzones
|
||||||
powerzones = rower.powerzones
|
powerzones = rower.powerzones
|
||||||
|
|
||||||
for w in workouts:
|
for w in workouts:
|
||||||
dd = w.date.strftime('%m/%d')
|
|
||||||
dd2 = w.date.strftime('%Y/%m/%d')
|
|
||||||
dd3 = w.date.strftime('%Y/%m')
|
dd3 = w.date.strftime('%Y/%m')
|
||||||
dd4 = '{year}/{week:02d}'.format(
|
dd4 = '{year}/{week:02d}'.format(
|
||||||
week=arrow.get(w.date).isocalendar()[1],
|
week=arrow.get(w.date).isocalendar()[1],
|
||||||
@@ -6798,7 +6667,6 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
while d <= enddate:
|
while d <= enddate:
|
||||||
dd = d.strftime('%d')
|
|
||||||
if date_agg == 'week':
|
if date_agg == 'week':
|
||||||
dd4 = '{year}/{week:02d}'.format(
|
dd4 = '{year}/{week:02d}'.format(
|
||||||
week=arrow.get(d).isocalendar()[1],
|
week=arrow.get(d).isocalendar()[1],
|
||||||
@@ -6842,12 +6710,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
|||||||
startdate = enddate
|
startdate = enddate
|
||||||
enddate = st
|
enddate = st
|
||||||
|
|
||||||
duration = enddate-startdate
|
|
||||||
|
|
||||||
totaldays = duration.total_seconds()/(24*3600)
|
|
||||||
|
|
||||||
colors = ['gray', 'yellow', 'lime', 'blue', 'purple', 'red']
|
|
||||||
|
|
||||||
hrzones = rower.hrzones
|
hrzones = rower.hrzones
|
||||||
powerzones = rower.powerzones
|
powerzones = rower.powerzones
|
||||||
|
|
||||||
@@ -6893,10 +6755,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
|||||||
|
|
||||||
df.drop('minutes', inplace=True, axis='columns')
|
df.drop('minutes', inplace=True, axis='columns')
|
||||||
|
|
||||||
# df.drop('hours',inplace=True,axis='columns')
|
|
||||||
|
|
||||||
source = ColumnDataSource(df)
|
|
||||||
|
|
||||||
df.sort_values('date_sorting', inplace=True)
|
df.sort_values('date_sorting', inplace=True)
|
||||||
df.drop('date_sorting', inplace=True, axis='columns')
|
df.drop('date_sorting', inplace=True, axis='columns')
|
||||||
df['totaltime'] = 0
|
df['totaltime'] = 0
|
||||||
@@ -6927,7 +6785,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
|||||||
bars = hv.Bars(df, kdims=['date', 'zones']).aggregate(
|
bars = hv.Bars(df, kdims=['date', 'zones']).aggregate(
|
||||||
function=np.sum).redim.values(zones=zones_order)
|
function=np.sum).redim.values(zones=zones_order)
|
||||||
|
|
||||||
#bars = table.to.bars(['date','zones'],['minutes'])
|
|
||||||
bars.opts(
|
bars.opts(
|
||||||
opts.Bars(cmap=color_map, show_legend=True, stacked=True,
|
opts.Bars(cmap=color_map, show_legend=True, stacked=True,
|
||||||
tools=['tap', 'hover'], width=550, padding=(0, (0, .1)),
|
tools=['tap', 'hover'], width=550, padding=(0, (0, .1)),
|
||||||
|
|||||||
2
tox.ini
2
tox.ini
@@ -1,4 +1,4 @@
|
|||||||
[flake8]
|
[flake8]
|
||||||
ignore = F405, F403, E722, E226, W504, F401, W605
|
ignore = F405, F403, E722, E226, W504, F401, W605, E501
|
||||||
max-line-length = 120
|
max-line-length = 120
|
||||||
exclude = .git, rowers/migrations, rowers/tests, rowers/admin.py
|
exclude = .git, rowers/migrations, rowers/tests, rowers/admin.py
|
||||||
|
|||||||
Reference in New Issue
Block a user