diff --git a/cmd/http/router.go b/cmd/http/router.go
index 26afd04..cfbd1d6 100644
--- a/cmd/http/router.go
+++ b/cmd/http/router.go
@@ -143,17 +143,30 @@ func (router Router) APITrends(w http.ResponseWriter, r *http.Request) {
}
slices.Sort(months)
- fmt.Fprintln(w, "")
+ catToMonth := map[string][]int{}
for _, month := range months {
balances := monthsToDeltas[month].Balances().WithBPIs(bpis)
- chart := view.NewChart("pie")
for category, balance := range balances {
- chart.AddY(category, []int{int(balance[ledger.USD])})
+ catToMonth[category] = append(catToMonth[category], int(balance[ledger.USD]))
}
- fmt.Fprintln(w, "
", month, "
")
- if err := chart.Render(w); err != nil {
- panic(err)
+ }
+
+ chart := view.NewChart("pie")
+ ttl := 0
+ for cat, month := range catToMonth {
+ for i := 0; i < len(months)-len(month); i++ {
+ month = append(month, 0)
}
+ slices.Sort(month)
+ median := month[len(month)/2]
+ ttl += median
+ if median > 50 {
+ chart.AddY(cat, []int{median})
+ }
+ }
+ fmt.Fprintln(w, "Median Spending ($", ttl, ")
")
+ if err := chart.Render(w); err != nil {
+ panic(err)
}
}
diff --git a/src/view/chart.go b/src/view/chart.go
index 7495a5e..8434702 100644
--- a/src/view/chart.go
+++ b/src/view/chart.go
@@ -124,6 +124,9 @@ func (pie *Pie) AddX(v interface{}) {
func (pie *Pie) Render(w io.Writer) error {
pie.AddSeries("", pie.series)
+ pie.SetGlobalOptions(charts.WithLegendOpts(opts.Legend{
+ Show: false,
+ }))
return pie.Pie.Render(w)
}