From 445a781b04712745925d9c428bdc1d6b8c0614c2 Mon Sep 17 00:00:00 2001 From: vicanso Date: Thu, 3 Feb 2022 08:45:55 +0800 Subject: [PATCH] refactor: add index to series --- chart.go | 14 +++++++------- line_chart.go | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/chart.go b/chart.go index a5f924d..12af36e 100644 --- a/chart.go +++ b/chart.go @@ -46,6 +46,7 @@ type Point struct { } type Series struct { + index int Type string Data []SeriesData YAxisIndex int @@ -160,11 +161,10 @@ func (r Range) Values() []string { } type basicRenderResult struct { - xRange *Range - yRange *Range - d *Draw - titleBox chart.Box - seriesOffset int + xRange *Range + yRange *Range + d *Draw + titleBox chart.Box } func ChartRender(opt ChartOption) (*Draw, error) { @@ -174,7 +174,8 @@ func ChartRender(opt ChartOption) (*Draw, error) { } lineSeries := make([]Series, 0) barSeries := make([]Series, 0) - for _, item := range opt.SeriesList { + for index, item := range opt.SeriesList { + item.index = index switch item.Type { case ChartTypeBar: barSeries = append(barSeries, item) @@ -193,7 +194,6 @@ func ChartRender(opt ChartOption) (*Draw, error) { if len(lineSeries) != 0 { o := opt o.SeriesList = lineSeries - result.seriesOffset = len(barSeries) _, err = lineChartRender(o, result) if err != nil { return nil, err diff --git a/line_chart.go b/line_chart.go index 56d83cd..4f10f97 100644 --- a/line_chart.go +++ b/line_chart.go @@ -51,7 +51,11 @@ func lineChartRender(opt ChartOption, result *basicRenderResult) (*Draw, error) Y: y, X: xRange.getWidth(float64(j)), }) - seriesColor := theme.GetSeriesColor(i + result.seriesOffset) + index := series.index + if index == 0 { + index = i + } + seriesColor := theme.GetSeriesColor(index) dotFillColor := drawing.ColorWhite if theme.IsDark() { dotFillColor = seriesColor