summaryrefslogtreecommitdiffstats
path: root/cmd/jp/bar.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/jp/bar.go')
-rw-r--r--cmd/jp/bar.go39
1 files changed, 20 insertions, 19 deletions
diff --git a/cmd/jp/bar.go b/cmd/jp/bar.go
index e1a622b..cfc39c2 100644
--- a/cmd/jp/bar.go
+++ b/cmd/jp/bar.go
@@ -2,37 +2,38 @@ package main
import (
"fmt"
+ "log"
"reflect"
- "github.com/sgreben/jp/pkg/jp"
- "github.com/sgreben/jp/pkg/jp/primitives"
+ "github.com/sgreben/jp/pkg/data"
+ "github.com/sgreben/jp/pkg/draw"
+ "github.com/sgreben/jp/pkg/plot"
)
-func barPlotData(xvv, yvv [][]reflect.Value) (x []string, y []float64) {
- for _, xv := range xvv {
- for i := range xv {
- if xv[i].IsValid() && xv[i].CanInterface() {
- x = append(x, fmt.Sprint(xv[i].Interface()))
- }
+func barPlotData(xv, yv []reflect.Value) (x []string, y []float64) {
+ for i := range xv {
+ if xv[i].IsValid() && xv[i].CanInterface() {
+ x = append(x, fmt.Sprint(xv[i].Interface()))
}
}
- for _, yv := range yvv {
- for i := range yv {
- if yv[i].IsValid() && yv[i].CanInterface() {
- yvi, ok := yv[i].Interface().(float64)
- if ok {
- y = append(y, yvi)
- }
+ for i := range yv {
+ if yv[i].IsValid() && yv[i].CanInterface() {
+ yvi, ok := yv[i].Interface().(float64)
+ if ok {
+ y = append(y, yvi)
}
}
}
return
}
-func barPlot(xvv, yvv [][]reflect.Value, box primitives.Box) string {
- groups, y := barPlotData(xvv, yvv)
- chart := jp.NewBarChart(box.Width, box.Height)
- data := new(jp.DataTable)
+func barPlot(xv, yv []reflect.Value, c draw.Canvas) string {
+ groups, y := barPlotData(xv, yv)
+ chart := plot.NewBarChart(c)
+ data := new(data.Table)
+ if len(y) == 0 {
+ log.Fatal("no valid y values given")
+ }
if len(groups) != len(y) {
for i := range y {
data.AddColumn(fmt.Sprint(i))