diff --git a/bar_chart.go b/bar_chart.go index e008baf..32373b1 100644 --- a/bar_chart.go +++ b/bar_chart.go @@ -98,7 +98,7 @@ func barChartRender(opt barChartOption, result *basicRenderResult) ([]markPointR }) divideValues := xRange.AutoDivide() for j, item := range series.Data { - if j >= len(divideValues) { + if j >= xRange.divideCount { continue } x := divideValues[j] diff --git a/examples/charts/main.go b/examples/charts/main.go index e10c7c0..cac7c10 100644 --- a/examples/charts/main.go +++ b/examples/charts/main.go @@ -423,6 +423,7 @@ func indexHandler(w http.ResponseWriter, req *http.Request) { 20.0, 6.4, 3.3, + 10.2, }), YAxisIndex: 1, }, @@ -441,6 +442,7 @@ func indexHandler(w http.ResponseWriter, req *http.Request) { 18.8, 6.0, 2.3, + 20.2, }), YAxisIndex: 1, }, @@ -458,6 +460,7 @@ func indexHandler(w http.ResponseWriter, req *http.Request) { 16.5, 12.0, 6.2, + 30.3, }), }, }, diff --git a/line_chart.go b/line_chart.go index 78790d3..c51997f 100644 --- a/line_chart.go +++ b/line_chart.go @@ -63,7 +63,7 @@ func lineChartRender(opt lineChartOption, result *basicRenderResult) ([]markPoin seriesColor := theme.GetSeriesColor(index) yRange := result.getYRange(series.YAxisIndex) - points := make([]Point, len(series.Data)) + points := make([]Point, 0, len(series.Data)) // mark line markLineRender(markLineRenderOption{ Draw: d, @@ -76,12 +76,15 @@ func lineChartRender(opt lineChartOption, result *basicRenderResult) ([]markPoin }) for j, item := range series.Data { + if j >= xRange.divideCount { + continue + } y := yRange.getRestHeight(item.Value) x := xRange.getWidth(float64(j)) - points[j] = Point{ + points = append(points, Point{ Y: y, X: x, - } + }) if !series.Label.Show { continue }