handle zero values

This commit is contained in:
Will Charczuk 2017-01-13 14:37:08 -08:00
parent fc9b6a6d55
commit e4cd38f602
2 changed files with 27 additions and 1 deletions

View file

@ -2,6 +2,7 @@ package chart
import (
"errors"
"fmt"
"io"
"math"
@ -85,7 +86,7 @@ func (bc BarChart) GetBarWidth() int {
// Render renders the chart with the given renderer to the given io.Writer.
func (bc BarChart) Render(rp RendererProvider, w io.Writer) error {
if len(bc.Bars) == 0 {
return errors.New("Please provide at least one bar.")
return errors.New("please provide at least one bar")
}
r, err := rp(bc.GetWidth(), bc.GetHeight())
@ -111,6 +112,9 @@ func (bc BarChart) Render(rp RendererProvider, w io.Writer) error {
canvasBox = bc.getDefaultCanvasBox()
yr = bc.getRanges()
if yr.GetMax()-yr.GetMin() == 0 {
return fmt.Errorf("invalid data range; cannot be zero")
}
yr = bc.setRangeDomains(canvasBox, yr)
yf = bc.getValueFormatters()