// Builds a histogram from a []float64 slice :) func HistoFromSlice(slice []float64) *plotter.Histogram { fmt.Println("HistoFromSlice() call - slice analytics:") fmt.Printf("Max: %f\n", analytics.MaxF64(slice)) fmt.Printf("Min: %f\n", analytics.MinF64(slice)) fmt.Printf("Avg: %f\n", analytics.AvgF64(slice)) v := make(plotter.Values, len(slice)) for i := range v { v[i] = slice[i] } h, err := plotter.NewHist(v, 150) if err != nil { panic(err) } return h }
func RecalcFromWebInput(w http.ResponseWriter, r *http.Request) error { defer r.Body.Close() body, _ := ioutil.ReadAll(r.Body) myRetCalc := retcalc.NewRetCalcFromJSON(body) fmt.Println() fmt.Println("POST request recieved - RecalcFromWebInput()") fmt.Printf("Recived: %s\n", string(body)) fmt.Println() incs := myRetCalc.RunIncomes() fmt.Println("RunIncomes() analystics:") fmt.Printf("Max: %f\n", analytics.MaxF64(incs)) fmt.Printf("Min: %f\n", analytics.MinF64(incs)) fmt.Printf("Avg: %f\n", analytics.AvgF64(incs)) myRetCalc.ShowRetCalc() //return json.NewEncoder(w).Encode(retcalc.HistoFromSlice(myRetCalc.RunIncomes())) return json.NewEncoder(w).Encode(analytics.HistoCumulative(myRetCalc.RunIncomes(), 250)) }