|
@@ -147,14 +147,21 @@ class TransactionEditor(FocusWidget):
|
|
|
self.rating.update_rating(_avg, _min, _max, unit, price=price, quantity=quantity)
|
|
|
|
|
|
# after truncating, need to recalculate avg(median), min, max
|
|
|
- df = df.sort_values('ts_raw', ascending=True).truncate(after=self.graph._canvas_width-1)
|
|
|
- self.graph.set_data(
|
|
|
- df[['$/unit']].apply(
|
|
|
- lambda x: (float(x['$/unit']),), axis=1
|
|
|
- ), float(df['$/unit'].max()), vscale=[x for x in map(float, [
|
|
|
- df['$/unit'].min(),
|
|
|
- df['$/unit'].median(),
|
|
|
- df['$/unit'].max()
|
|
|
+ df = df.sort_values('ts_raw', ascending=True, ignore_index=True).truncate(after=self.graph._canvas_width-1)
|
|
|
+ data = df[['$/unit','quantity']].apply(
|
|
|
+ lambda x: (float(x['$/unit']), float(x['quantity'])),
|
|
|
+ axis=1, result_type='broadcast'
|
|
|
+ )
|
|
|
+ data['avg'] = (data['$/unit']*data['quantity']).sum()/data['quantity'].sum()
|
|
|
+ data_max = data.max()['$/unit'] #.max()
|
|
|
+ assert len(data['avg'].unique()) == 1
|
|
|
+ norm = [ (x,) for x in data['$/unit'] ] #.to_records(index=False)
|
|
|
+ self.graph.set_data(norm, data_max,
|
|
|
+ vscale=[x for x in map(float, [
|
|
|
+ data['$/unit'].min(),
|
|
|
+ data['$/unit'].median(),
|
|
|
+ data['avg'].iloc[0],
|
|
|
+ data_max
|
|
|
])]
|
|
|
)
|
|
|
#self.graph.set_bar_width(1)
|