pie trims common prefix and sorts slice names
parent
3211dbd73f
commit
16bbeb8749
|
|
@ -3,6 +3,8 @@ package view
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"slices"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/go-echarts/go-echarts/v2/charts"
|
"github.com/go-echarts/go-echarts/v2/charts"
|
||||||
"github.com/go-echarts/go-echarts/v2/opts"
|
"github.com/go-echarts/go-echarts/v2/opts"
|
||||||
|
|
@ -123,6 +125,20 @@ func (pie *Pie) AddX(v interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pie *Pie) Render(w io.Writer) error {
|
func (pie *Pie) Render(w io.Writer) error {
|
||||||
|
slices.SortFunc(pie.series, func(a, b opts.PieData) int {
|
||||||
|
return strings.Compare(a.Name, b.Name)
|
||||||
|
})
|
||||||
|
commonPrefixLen := 0
|
||||||
|
for i := 0; i < len(pie.series[0].Name) && i < len(pie.series[len(pie.series)-1].Name); i++ {
|
||||||
|
if pie.series[0].Name[i] != pie.series[len(pie.series)-1].Name[i] {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
commonPrefixLen = i
|
||||||
|
}
|
||||||
|
for i := range pie.series {
|
||||||
|
pie.series[i].Name = pie.series[i].Name[commonPrefixLen:]
|
||||||
|
}
|
||||||
|
|
||||||
pie.AddSeries("", pie.series)
|
pie.AddSeries("", pie.series)
|
||||||
pie.SetGlobalOptions(charts.WithLegendOpts(opts.Legend{
|
pie.SetGlobalOptions(charts.WithLegendOpts(opts.Legend{
|
||||||
Show: false,
|
Show: false,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue