You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go ECharts仪表盘图表中设置自定义区间?

如何为Go ECharts仪表盘设置自定义颜色区间?

要实现仪表盘0-30绿色、31-65橙色、66-100红色的自定义区间,你需要通过配置仪表盘系列的AxisLine属性定义分段颜色,具体实现如下:

修改代码示例

在AddSeries方法中传入opts.GaugeSeriesOpts配置,指定区间对应的颜色:

import (
    "math/rand"
    "fmt"
    "github.com/go-echarts/go-echarts/v2/charts"
    "github.com/go-echarts/go-echarts/v2/opts"
)

func gaugeBase() *charts.Gauge {
    gauge := charts.NewGauge()
    gauge.SetGlobalOptions(
        charts.WithTitleOpts(opts.Title{Title: "自定义区间仪表盘示例"}),
    )

    // 配置自定义区间颜色
    gauge.AddSeries("ProjectA", []opts.GaugeData{{Name: "工作进度", Value: rand.Intn(100)}},
        charts.WithGaugeSeriesOpts(
            opts.GaugeSeries{
                // 设置刻度分割数,让区间显示更清晰
                SplitNumber: 10,
                AxisLine: &opts.GaugeAxisLine{
                    LineStyle: &opts.GaugeLineStyle{
                        // 定义区间与对应颜色:[区间上限值, 颜色]
                        Color: [][]interface{}{
                            {30, "#52c41a"}, // 0-30 绿色
                            {65, "#faad14"}, // 31-65 橙色
                            {100, "#f5222d"},// 66-100 红色
                        },
                        Width: 30, // 仪表盘环形线条宽度
                    },
                },
            },
        ),
    )
    return gauge
}

func gaugeTimer() *charts.Gauge {
    gauge := charts.NewGauge()
    gauge.SetGlobalOptions(
        charts.WithTitleOpts(opts.Title{Title: "带定时器的自定义区间仪表盘"}),
    )

    gauge.AddSeries("ProjectB", []opts.GaugeData{{Name: "工作进度", Value: rand.Intn(100)}},
        charts.WithGaugeSeriesOpts(
            opts.GaugeSeries{
                SplitNumber: 10,
                AxisLine: &opts.GaugeAxisLine{
                    LineStyle: &opts.GaugeLineStyle{
                        Color: [][]interface{}{
                            {30, "#52c41a"},
                            {65, "#faad14"},
                            {100, "#f5222d"},
                        },
                        Width: 30,
                    },
                },
            },
        ),
    )

    fn := fmt.Sprintf(`setInterval(function () {
            option_%s.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
            goecharts_%s.setOption(option_%s, true);
        }, 2000);`, gauge.ChartID, gauge.ChartID, gauge.ChartID)
    gauge.AddJSFuncs(fn)
    return gauge
}

关键配置说明

  • AxisLine.LineStyle.Color:核心配置项,通过二维数组定义每个区间的上限值和对应颜色。数组中每个元素的第一个值是区间上限,颜色会自动应用到「前一个区间上限到当前值」的范围(比如{30, "#52c41a"}对应0-30的范围)。
  • SplitNumber:设置仪表盘的刻度分割数量,数值越大刻度越密集,区间划分显示更精准。
  • Width:控制仪表盘环形线条的粗细,可根据需求调整。

内容的提问来源于stack exchange,提问作者PKumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 06:11:13