diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index c08ef90d..316f7fe5 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -94,6 +94,7 @@ def errorbar(fig, x, y, source=ColumnDataSource(), xvalues = source.data[x] yvalues = source.data[y] + xerrvalues = source.data['xerror'] yerrvalues = source.data['yerror'] try: @@ -2362,10 +2363,13 @@ def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='', if yparam == 'pace': y_axis_type = 'datetime' + datadf.index.names = ['index'] + source = ColumnDataSource( datadf, ) + TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,resize' if groupby != 'date': diff --git a/rowers/views.py b/rowers/views.py index 790209f4..4dd98d9b 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5979,6 +5979,7 @@ def multiflex_data(request,userid=0, if userid==0: userid = request.user.id + palette = options['palette'] groupby = options['groupby'] binsize = options['binsize'] @@ -6010,6 +6011,9 @@ def multiflex_data(request,userid=0, # prepare data frame datadf,extracols = dataprep.read_cols_df_sql(ids,fieldlist) + if xparam == groupby: + datadf['groupby'] = datadf[xparam] + groupy = 'groupby' datadf = dataprep.clean_df_stats(datadf,workstrokesonly=workstrokesonly) @@ -6060,14 +6064,18 @@ def multiflex_data(request,userid=0, labels=False)) - xvalues = groups.mean()[xparam] + xvalues = groups.mean()[xparam] yvalues = groups.mean()[yparam] xerror = groups.std()[xparam] yerror = groups.std()[yparam] groupsize = groups.count()[xparam] + print groupsize.sum(),groupsize.mean() + mask = groupsize <= min([0.01*groupsize.sum(),0.2*groupsize.mean()]) + print '--------------------------' xvalues.loc[mask] = np.nan + yvalues.loc[mask] = np.nan xerror.loc[mask] = np.nan yerror.loc[mask] = np.nan @@ -6079,7 +6087,6 @@ def multiflex_data(request,userid=0, yerror.dropna(inplace=True) groupsize.dropna(inplace=True) - if len(groupsize) == 0: messages.error(request,'No data in selection') url = reverse(user_multiflex_select) @@ -6097,6 +6104,7 @@ def multiflex_data(request,userid=0, 'groupsize':groupsize, }) + if yparam == 'pace': df['y'] = dataprep.paceformatsecs(df['y']/1.0e3) @@ -6128,8 +6136,9 @@ def multiflex_data(request,userid=0, df['groupval'] = groups.mean()['days ago'].fillna(value=0) groupcols = 100.*np.arange(aantal)/float(aantal) - + groupcols = (groupcols-groupcols.min())/(groupcols.max()-groupcols.min()) + if aantal == 1: groupcols = np.array([1.])