首页 > 解决方案 > Highcharts 样条未正确定位的问题

问题描述

我在使用 Highcharts 样条图时遇到问题,我基本上是在绘制 CPU/RAM 图表,从我的 NAS API 获取值。

这基本上是图表。

在此处输入图像描述

正如你所看到的,这个值是正确的(6)。

在此处输入图像描述

这个不是,3当然低于6,而是显示高于3

在此处输入图像描述

在这里您可以看到1的值,即绘制在 24% 左右(RAM 值)。

在此处输入图像描述

这是图表创建:

Highcharts.chart({
        title: {
            text: 'CPU and RAM'
        },
        chart: {
            renderTo: 'cpu-memory-chart',
            type: 'spline',
            animation: Highcharts.svg
        },
        plotOptions: {
            series: {
                stacking: 'normal',
                shadow: false,
                groupPadding: 0,
                pointPadding: 0.2,
                animation: 1000
            },
            spline: {
                marker: {
                    enabled: false
                }
            }
        },
        yAxis: {
            title: '%',
            max: 100,
            min: 0
        },
        xAxis: {
            type: 'datetime',
            tickInterval: 1000,
            labels: {
                /*style: {
                    color: '#aaa'
                }*/
                enabled: false
            }
        },
        exporting: {
            enabled: false
        },
        colors: ['#4CAF50', '#1F80ED'],
        series: [
            {
                name: "CPU",
                pointInterval: 1000,
                pointStart: (new Date()).getTime()
            },
            {
                name: "RAM",
                pointInterval: 1000,
                pointStart: (new Date()).getTime()
            }
        ]
    });
}

这就是我更新点的方式:

(注意data是API调用的结果,cpuRamSeries是图表的serie)

if(points < 10){
                points++;
                cpuRamSeries[0].addPoint([(new Date()).getTime(), data.cpu]);
                cpuRamSeries[1].addPoint([(new Date()).getTime(), data.ram]);
            }else{
                cpuRamSeries[0].addPoint([(new Date()).getTime(), data.cpu], false, true);
                cpuRamSeries[1].addPoint([(new Date()).getTime(), data.ram], false, true);
                cpuRamChart.redraw();
            }

这是我第一次尝试使用 Highcharts,所以我真的不知道问题可能出在哪里。任何建议表示赞赏:)

标签: javascripthighcharts

解决方案


推荐阅读