79 lines
1.1 KiB
Go
79 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"git.smarteching.com/zeni/go-charts/v2"
|
|
)
|
|
|
|
func writeFile(buf []byte) error {
|
|
tmpPath := "./tmp"
|
|
err := os.MkdirAll(tmpPath, 0700)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
file := filepath.Join(tmpPath, "radar-chart.png")
|
|
err = os.WriteFile(file, buf, 0600)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
values := [][]float64{
|
|
{
|
|
4200,
|
|
3000,
|
|
20000,
|
|
35000,
|
|
50000,
|
|
18000,
|
|
},
|
|
{
|
|
5000,
|
|
14000,
|
|
28000,
|
|
26000,
|
|
42000,
|
|
21000,
|
|
},
|
|
}
|
|
p, err := charts.RadarRender(
|
|
values,
|
|
charts.TitleTextOptionFunc("Basic Radar Chart"),
|
|
charts.LegendLabelsOptionFunc([]string{
|
|
"Allocated Budget",
|
|
"Actual Spending",
|
|
}),
|
|
charts.RadarIndicatorOptionFunc([]string{
|
|
"Sales",
|
|
"Administration",
|
|
"Information Technology",
|
|
"Customer Support",
|
|
"Development",
|
|
"Marketing",
|
|
}, []float64{
|
|
6500,
|
|
16000,
|
|
30000,
|
|
38000,
|
|
52000,
|
|
25000,
|
|
}),
|
|
)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
buf, err := p.Bytes()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = writeFile(buf)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|