Private
Public Access
1
0

CP chart data points are now clickable

This commit is contained in:
Sander Roosendaal
2021-01-09 12:14:34 +01:00
parent 4c9b6b687b
commit 8c02df6307
3 changed files with 13 additions and 4 deletions

View File

@@ -1243,28 +1243,30 @@ def fetchcp_new(rower,workouts):
try:
df = pd.read_parquet(cpfile)
df['workout'] = str(workout)
df['url'] = workout.url()
data.append(df)
except:
# CP data file doesn't exist yet. has to be created
df, delta, cpvalues = setcp(workout)
df['workout'] = str(workout)
df['url'] = workout.url()
data.append(df)
if len(data) == 0:
return pd.Series(),pd.Series(),0,pd.Series()
return pd.Series(),pd.Series(),0,pd.Series(),pd.Series()
if len(data)>1:
df = pd.concat(data,axis=0)
try:
df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')]
except KeyError:
pd.Series(),pd.Series(),0,pd.DataFrame()
pd.Series(),pd.Series(),0,pd.Series(),pd.Series()
df = df.sort_values(['delta']).reset_index()
return df['delta'],df['cp'],0,df['workout']
return df['delta'],df['cp'],0,df['workout'],df['url']
def setcp(workout,background=False,recurrance=True):
filename = 'media/cpdata_{id}.parquet.gz'.format(id=workout.id)

View File

@@ -3896,6 +3896,8 @@ def interactive_otwcpchart(powerdf,promember=0,rowername="",r=None,cpfit='data',
deltas = fitt.apply(lambda x: timedeltaconv(x))
ftime = niceformat(deltas)
workouts = powerdf['workout']
urls = powerdf['url']
sourcecomplex = ColumnDataSource(
data = dict(
@@ -3904,6 +3906,7 @@ def interactive_otwcpchart(powerdf,promember=0,rowername="",r=None,cpfit='data',
duration = fitt/60.,
ftime = ftime,
workout = workouts,
url = urls,
)
)
@@ -3967,6 +3970,9 @@ def interactive_otwcpchart(powerdf,promember=0,rowername="",r=None,cpfit='data',
hover.mode = 'mouse'
taptool = plot.select(type=TapTool)
taptool.callback = OpenURL(url='@url')
plot.line('duration','CP',source=sourcecomplex,legend_label="CP Model",
color='green')

View File

@@ -525,12 +525,13 @@ def cpdata(workouts, options):
ids = [w.id for w in workouts]
delta, cpvalue, avgpower,workoutnames = dataprep.fetchcp_new(r,workouts)
delta, cpvalue, avgpower,workoutnames,urls = dataprep.fetchcp_new(r,workouts)
powerdf = pd.DataFrame({
'Delta':delta,
'CP':cpvalue,
'workout':workoutnames,
'url':urls,
})