dont start at zero

main
Bel LaPointe 2024-02-21 12:47:05 -07:00
parent bf0c27efca
commit 3aa9f635be
2 changed files with 36 additions and 1 deletions

View File

@ -30,7 +30,7 @@ type Data struct {
} }
func newConfig() (Config, error) { func newConfig() (Config, error) {
dataPoints := envOr("DATA_POINTS", `[[1, 1], [1, 2], [2, 1], [2, 1], [4, 3]]`) dataPoints := envOr("DATA_POINTS", `[[11, 21], [11, 22], [12, 21], [12, 21], [14, 23]]`)
dataLabels := envOr("DATA_LABELS", ``) dataLabels := envOr("DATA_LABELS", ``)
dataWeightRange := envOr("DATA_WEIGHT_RANGE", `20`) dataWeightRange := envOr("DATA_WEIGHT_RANGE", `20`)
dataWeightFloor := envOr("DATA_WEIGHT_FLOOR", `12`) dataWeightFloor := envOr("DATA_WEIGHT_FLOOR", `12`)

35
main.go
View File

@ -33,6 +33,37 @@ func run(ctx context.Context) error {
} }
log.Printf("%s: (%s, %s) = %v", config.Data.Title, x, y, data) log.Printf("%s: (%s, %s) = %v", config.Data.Title, x, y, data)
minX, maxX := data[0].Value.([]float64)[0], data[0].Value.([]float64)[0]
minY, maxY := data[0].Value.([]float64)[1], data[0].Value.([]float64)[1]
for _, datum := range data {
x := datum.Value.([]float64)[0]
if x < minX {
minX = x
} else if x > maxX {
maxX = x
}
y := datum.Value.([]float64)[1]
if y < minY {
minY = y
} else if y > maxY {
maxY = y
}
}
if 0 <= minX && minX <= 1 {
minX = 0
} else if 1 <= minX {
minX -= 1
maxX += 1
}
if 0 <= minY && minY <= 1 {
minY = 0
} else if 1 <= minY {
minY -= 1
maxY += 1
}
log.Printf("x=[%v, %v] y=[%v, %v]", minX, maxX, minY, maxY)
scatter := charts.NewScatter() scatter := charts.NewScatter()
scatter.SetGlobalOptions( scatter.SetGlobalOptions(
charts.WithTitleOpts(opts.Title{ charts.WithTitleOpts(opts.Title{
@ -48,11 +79,15 @@ func run(ctx context.Context) error {
Name: x, Name: x,
NameLocation: "middle", NameLocation: "middle",
NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, NameGap: config.Data.Weight.Floor + config.Data.Weight.Range,
Min: minX,
Max: maxX,
}), }),
charts.WithYAxisOpts(opts.YAxis{ charts.WithYAxisOpts(opts.YAxis{
Name: y, Name: y,
NameLocation: "middle", NameLocation: "middle",
NameGap: config.Data.Weight.Floor + config.Data.Weight.Range, NameGap: config.Data.Weight.Floor + config.Data.Weight.Range,
Min: minY,
Max: maxY,
}), }),
) )
scatter.AddSeries(y, data) scatter.AddSeries(y, data)