From 65db7ee6d8471f6379134a9864667e2158cc18f3 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 4 Oct 2019 09:24:10 +0200 Subject: [PATCH] improving correlation matrix --- rowers/dataprep.py | 33 ++++++++++++++++++++++++++++++++- rowers/views/analysisviews.py | 30 ++++++++++++++++-------------- rowers/views/workoutviews.py | 20 ++++++++++++-------- static/css/rowsandall2.css | 4 ++-- 4 files changed, 62 insertions(+), 25 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 9e099622..1aade283 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -537,8 +537,39 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, return datadf - def getstatsfields(): + fielddict = {name:d['verbose_name'] for name,d in rowingmetrics} + +# fielddict.pop('ergpace') +# fielddict.pop('hr_an') +# fielddict.pop('hr_tr') +# fielddict.pop('hr_at') +# fielddict.pop('hr_ut2') +# fielddict.pop('hr_ut1') + fielddict.pop('time') + fielddict.pop('distance') +# fielddict.pop('nowindpace') +# fielddict.pop('fnowindpace') +# fielddict.pop('fergpace') +# fielddict.pop('equivergpower') +# fielddict.pop('workoutstate') +# fielddict.pop('fpace') +# fielddict.pop('pace') +# fielddict.pop('id') +# fielddict.pop('ftime') +# fielddict.pop('x_right') +# fielddict.pop('hr_max') +# fielddict.pop('hr_bottom') + fielddict.pop('cumdist') + + try: + fieldlist = [field for field, value in fielddict.iteritems()] + except AttributeError: + fieldlist = [field for field, value in fielddict.items()] + + return fieldlist, fielddict + +def getstatsfields_old(): # Get field names and remove those that are not useful in stats fields = StrokeData._meta.get_fields() diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 60dea044..9cb21f11 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -523,8 +523,8 @@ def statsdata(workouts, options): # Create stats stats = {} - fielddict.pop('workoutstate') - fielddict.pop('workoutid') + # fielddict.pop('workoutstate') + # fielddict.pop('workoutid') for field,verbosename in fielddict.items(): @@ -544,15 +544,15 @@ def statsdata(workouts, options): cor = datadf.corr(method='spearman') cor.fillna(value=0,inplace=True) cordict = {} - for field1,verbosename in fielddict.items(): + for field1,verbosename1 in fielddict.items(): thedict = {} - for field2,verbosename in fielddict.items(): + for field2,verbosename2 in fielddict.items(): try: - thedict[field2] = cor.loc[field1,field2] + thedict[verbosename2] = cor.loc[field1,field2] except KeyError: - thedict[field2] = 0 + thedict[verbosename2] = 0 - cordict[field1] = thedict + cordict[verbosename1] = thedict context = { 'stats':stats, @@ -4208,8 +4208,10 @@ def cumstats(request,theuser=0, # Create stats stats = {} - fielddict.pop('workoutstate') - fielddict.pop('workoutid') + try: + fielddict.pop('pace') + except KeyError: + pass for field,verbosename in fielddict.items(): thedict = { @@ -4228,15 +4230,15 @@ def cumstats(request,theuser=0, cor = datadf.corr(method='spearman') cor.fillna(value=0,inplace=True) cordict = {} - for field1,verbosename in fielddict.items(): + for field1,verbosename1 in fielddict.items(): thedict = {} - for field2,verbosename in fielddict.items(): + for field2,verbosename2 in fielddict.items(): try: - thedict[field2] = cor.loc[field1,field2] + thedict[verbosename2] = cor.loc[field1,field2] except KeyError: - thedict[field2] = 0 + thedict[verbosename2] = 0 - cordict[field1] = thedict + cordict[verbosename1] = thedict # set options form correctly initial = {} diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 55321bc6..0293bfea 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -2537,9 +2537,13 @@ def workout_stats_view(request,id=0,message="",successmessage=""): stats = {} fieldlist,fielddict = dataprep.getstatsfields() - fielddict.pop('workoutstate') - fielddict.pop('workoutid') - + # fielddict.pop('workoutstate') + # fielddict.pop('workoutid') + try: + fielddict.pop('pace') + except KeyError: + pass + for field,verbosename in fielddict.items(): thedict = { 'mean':datadf[field].mean(), @@ -2558,15 +2562,15 @@ def workout_stats_view(request,id=0,message="",successmessage=""): cor = datadf.corr(method='spearman') cor.fillna(value=0,inplace=True) cordict = {} - for field1,verbosename in fielddict.items(): + for field1,verbosename1 in fielddict.items(): thedict = {} - for field2,verbosename in fielddict.items(): + for field2,verbosename2 in fielddict.items(): try: - thedict[field2] = cor.loc[field1,field2] + thedict[verbosename2] = cor.loc[field1,field2] except KeyError: - thedict[field2] = 0 + thedict[verbosename2] = 0 - cordict[field1] = thedict + cordict[verbosename1] = thedict # additional non-automated stats otherstats = {} diff --git a/static/css/rowsandall2.css b/static/css/rowsandall2.css index 28aa8f1b..f096204a 100644 --- a/static/css/rowsandall2.css +++ b/static/css/rowsandall2.css @@ -124,14 +124,14 @@ th { th.rotate { /* Something you can count on */ - height: 78px; + height: 120px; white-space: nowrap; } th.rotate > div { transform: /* Magic Numbers */ - translate(18px, 51px) + translate(28px, 91px) /* 45 is really 360 - 45 */ rotate(315deg); width: 30px;