diff options
Diffstat (limited to 'cmd/jp')
-rw-r--r-- | cmd/jp/bar.go | 12 | ||||
-rw-r--r-- | cmd/jp/line.go | 16 |
2 files changed, 18 insertions, 10 deletions
diff --git a/cmd/jp/bar.go b/cmd/jp/bar.go index be0c230..e1a622b 100644 --- a/cmd/jp/bar.go +++ b/cmd/jp/bar.go @@ -11,14 +11,18 @@ import ( func barPlotData(xvv, yvv [][]reflect.Value) (x []string, y []float64) { for _, xv := range xvv { for i := range xv { - x = append(x, fmt.Sprint(xv[i].Interface())) + if xv[i].IsValid() && xv[i].CanInterface() { + x = append(x, fmt.Sprint(xv[i].Interface())) + } } } for _, yv := range yvv { for i := range yv { - yvi, ok := yv[i].Interface().(float64) - if ok { - y = append(y, yvi) + if yv[i].IsValid() && yv[i].CanInterface() { + yvi, ok := yv[i].Interface().(float64) + if ok { + y = append(y, yvi) + } } } } diff --git a/cmd/jp/line.go b/cmd/jp/line.go index 6b75a8f..b47b38c 100644 --- a/cmd/jp/line.go +++ b/cmd/jp/line.go @@ -10,17 +10,21 @@ import ( func linePlotData(xvv, yvv [][]reflect.Value) (x, y []float64) { for _, xv := range xvv { for i := range xv { - xvi, ok := xv[i].Interface().(float64) - if ok { - x = append(x, xvi) + if xv[i].IsValid() && xv[i].CanInterface() { + xvi, ok := xv[i].Interface().(float64) + if ok { + x = append(x, xvi) + } } } } for _, yv := range yvv { for i := range yv { - yvi, ok := yv[i].Interface().(float64) - if ok { - y = append(y, yvi) + if yv[i].IsValid() && yv[i].CanInterface() { + yvi, ok := yv[i].Interface().(float64) + if ok { + y = append(y, yvi) + } } } } |