bug fix
This commit is contained in:
@@ -174,32 +174,39 @@ from rowers.dataprep import timedeltaconv
|
||||
|
||||
from math import pi
|
||||
|
||||
def interactive_hr_piechart(df,rower,title):
|
||||
def interactive_hr_piechart(df,rower,title,totalseconds=0):
|
||||
if df.empty:
|
||||
return "","Not enough data to make a chart"
|
||||
|
||||
|
||||
|
||||
df.sort_values(by='hr',inplace=True)
|
||||
df['timehr'] = df['deltat']*df['hr']
|
||||
|
||||
sumtimehr = df['deltat'].sum()
|
||||
|
||||
if totalseconds == 0:
|
||||
totalseconds = sumtimehr
|
||||
|
||||
|
||||
|
||||
qry = 'hr < {ut2}'.format(ut2=rower.ut2)
|
||||
frac_lut2 = df.query(qry)['deltat'].sum()
|
||||
frac_lut2 = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
qry = '{ut2} <= hr < {ut1}'.format(ut1=rower.ut1,ut2=rower.ut2)
|
||||
frac_ut2 = df.query(qry)['deltat'].sum()
|
||||
frac_ut2 = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
qry = '{ut2} <= hr < {at}'.format(ut2=rower.ut2,at=rower.at)
|
||||
frac_ut1 = df.query(qry)['deltat'].sum()
|
||||
qry = '{ut1} <= hr < {at}'.format(ut1=rower.ut1,at=rower.at)
|
||||
frac_ut1 = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
qry = '{at} <= hr < {tr}'.format(at=rower.at,tr=rower.tr)
|
||||
frac_at = df.query(qry)['deltat'].sum()
|
||||
frac_at = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
qry = '{tr} <= hr < {an}'.format(tr=rower.tr,an=rower.an)
|
||||
frac_tr = df.query(qry)['deltat'].sum()
|
||||
frac_tr = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
qry = 'hr >= {an}'.format(an=rower.an)
|
||||
frac_an = df.query(qry)['deltat'].sum()
|
||||
frac_an = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
|
||||
|
||||
datadict = {
|
||||
'<ut2':frac_lut2,
|
||||
@@ -210,12 +217,18 @@ def interactive_hr_piechart(df,rower,title):
|
||||
'an': frac_an,
|
||||
}
|
||||
|
||||
|
||||
|
||||
colors = ['gray','yellow','lime','blue','purple','red']
|
||||
|
||||
|
||||
|
||||
data = pd.Series(datadict).reset_index(name='value').rename(columns={'index':'zone'})
|
||||
data['angle'] = data['value']/data['value'].sum() * 2*pi
|
||||
data['color'] = colors
|
||||
data['totaltime'] = pd.Series([pretty_timedelta(v/1000.) for v in data['value']])
|
||||
data['totaltime'] = pd.Series([pretty_timedelta(v) for v in data['value']])
|
||||
|
||||
|
||||
|
||||
size=350
|
||||
TOOLS = 'save,hover'
|
||||
|
||||
Reference in New Issue
Block a user