diff --git a/config.go b/config.go index bdf34ab..0e0906f 100644 --- a/config.go +++ b/config.go @@ -32,8 +32,8 @@ type Data struct { func newConfig() (Config, error) { dataPoints := envOr("DATA_POINTS", `[[1, 1], [1, 2], [2, 1], [2, 1], [4, 3]]`) dataLabels := envOr("DATA_LABELS", ``) - dataWeightFloor := envOr("DATA_WEIGHT_FLOOR", `12`) dataWeightRange := envOr("DATA_WEIGHT_RANGE", `20`) + dataWeightFloor := envOr("DATA_WEIGHT_FLOOR", `12`) dataTitle := envOr("DATA_TITLE", ``) dataSubtitle := envOr("DATA_SUBTITLE", ``) output := envOr("OUTPUT", `file:///tmp/f`) @@ -87,6 +87,9 @@ func newConfig() (Config, error) { return result, fmt.Errorf("found negative weight floor %d", result.Data.Weight.Floor) } + result.Data.Title = dataTitle + result.Data.Subtitle = dataSubtitle + if u, err := url.Parse(output); err != nil { return result, fmt.Errorf("failed to parse $OUTPUT (%s): %w", output, err) } else { @@ -151,11 +154,8 @@ func (d Data) weighXYasZ() Data { } xyz[x][y] += z } - result := Data{ - Labels: d.Labels[:], - Points: [][]float64{}, - Weight: d.Weight, - } + result := d + result.Points = [][]float64{} for x := range xyz { for y, z := range xyz[x] { result.Points = append(result.Points, []float64{x, y, z}) diff --git a/main.go b/main.go index e58dcb5..a4823e6 100644 --- a/main.go +++ b/main.go @@ -31,28 +31,30 @@ func run(ctx context.Context) error { if err != nil { return err } - log.Printf("(%s, %s) = %v", x, y, data) + log.Printf("%s: (%s, %s) = %v", config.Data.Title, x, y, data) scatter := charts.NewScatter() - scatter.SetGlobalOptions(charts.WithTitleOpts(opts.Title{ - Title: config.Data.Title, - Subtitle: config.Data.Subtitle, - })) - scatter.SetGlobalOptions(charts.WithTooltipOpts(opts.Tooltip{ - Show: true, - Formatter: `{c}`, - })) - scatter.SetGlobalOptions(charts.WithLegendOpts(opts.Legend{Show: false})) - scatter.SetGlobalOptions(charts.WithXAxisOpts(opts.XAxis{ - Name: x, - NameLocation: "middle", - NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, - })) - scatter.SetGlobalOptions(charts.WithYAxisOpts(opts.YAxis{ - Name: y, - NameLocation: "middle", - NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, - })) + scatter.SetGlobalOptions( + charts.WithTitleOpts(opts.Title{ + Title: config.Data.Title, + Subtitle: config.Data.Subtitle, + }), + charts.WithTooltipOpts(opts.Tooltip{ + Show: true, + Formatter: `{c}`, + }), + charts.WithLegendOpts(opts.Legend{Show: false}), + charts.WithXAxisOpts(opts.XAxis{ + Name: x, + NameLocation: "middle", + NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, + }), + charts.WithYAxisOpts(opts.YAxis{ + Name: y, + NameLocation: "middle", + NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, + }), + ) scatter.AddSeries(y, data) buff := bytes.NewBuffer(nil)