高图仪表与标记设置阈值

时间:2017-10-24 13:21:42

标签: javascript highcharts

enter image description here

我想得到一个像这样的仪表,用黑色标记设置阈值和内部“蓝色”数据作为负载。

我在我的代码中使用了Highcharts(我没有太多的知识)来获得尽可能接近的所需规格,但是我得到的是下面的东西,只是加载没有“标记”:< / p>

enter image description here

代码如下:

var gaugeOptions = {

    chart: {
        type: 'solidgauge'
    },

    title: null,

    pane: {
        center: ['50%', '85%'],
        size: '140%',
        startAngle: -90,
        endAngle: 90,
        background: {
            backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',
            innerRadius: '80%',
            outerRadius: '100%',
            shape: 'arc'
        }
    },

    tooltip: {
        enabled: false
    },

    // the value axis
    yAxis: {
        stops: [
            [0.1, '#55BF3B'], // green
            [0.6, '#DDDF0D'], // yellow
            [0.9, '#DF5353'] // red
        ],
        lineWidth: 0,
        minorTickInterval: null,
        tickAmount: 2,
        title: {
            y: -70
        },
        labels: {
            y: 16
        }
    },

    plotOptions: {
        solidgauge: {
            dataLabels: {
                y: 5,
                borderWidth: 0,
                useHTML: true
            }
        }
    }
};

var chartSpeed = Highcharts.chart('container-speed', Highcharts.merge(gaugeOptions, {
    yAxis: {
        min: 0,
        max: 100
    },

    credits: {
        enabled: false
    },

    series: [{
        name: 'Load',
        data: [{
            radius: '100%',
            innerRadius: '80%',
            y: Number($scope.user.threshold)
        }],
        dataLabels: {
            format: '<div style="text-align:center"><span style="font-size:25px;color:' +
                ('black') + '">{y}</span><br/>' +
                   '<span style="font-size:12px;color:silver">%</span></div>'
        },
        tooltip: {
            valueSuffix: ' %'
        }
    }]

}));

关于如何获得第一个量规的任何想法?此外,它应该能够判断负载何时超过阈值。

编辑(已解决):

yAxis: {
     plotBands: [{
        from: 60,
        to: 61,
        color: 'black',
        thickness: '45%',
        outerRadius: '105%',
        zIndex: 5
    }],  .... }

将此添加到我的代码中,使其正常工作。

1 个答案:

答案 0 :(得分:2)

您可以使用绘图带来实现此目的:

yAxis: {
  plotBands: {
    from: 70,
    to: 71,
    color: '#DF5353',
    thickness: '40%'
  },
...
}

厚度是标记上半径的长度(通过查看图表更容易理解)。

这里有很多配置选项,应该可以通过查看API来搞清楚。

工作示例http://jsfiddle.net/ewolden/6rL9u37d/2/

yAxis.plotBands上的API https://api.highcharts.com/highcharts/yAxis.plotBands