【问题标题】:Highcharts - remove points from seriesHighcharts - 从系列中删除点
【发布时间】:2013-10-07 08:42:51
【问题描述】:

是否可以从系列中删除某些点? 我正在寻找某种方法来绘制具有固定回溯期的图表, 类似于:过去 1 小时。

我知道如何使用动态更新来加分:

http://www.highcharts.com/demo/dynamic-update

但在我的情况下,点之间的时间间隔不是恒定的, 所以我不能只使用addPoint的shift选项。

谢谢, 奥马尔

【问题讨论】:

    标签: highcharts


    【解决方案1】:

    如果你想拥有相同的,你可以使用与addPoint中相同的逻辑,见:http://jsfiddle.net/JKCLx/1/

    但是,为什么不能在 addPoint() 中使用 shift 参数?

    【讨论】:

    • 谢谢,您的解决方案有效,但我不明白,您能否澄清一下? shift 参数意味着对于我添加的每个点,我都会删除另一个点,但是如果点之间的时间间隔不是恒定的,则此逻辑不正确。所以我真正需要的是一个不会导致系列完全重绘的 removePoint() 函数。
    • 不完全重绘是什么意思?您可以或不重绘,也不能在删除点时仅剪切图表的一部分。是的,班次以这种方式工作,所以当添加新点时,删除最后一个。如何在图表上再添加一个点,它将在绘图区域之外,并在新点到达时删除该点?或者可以有与可见点相同的数量,所以不规则的间隔不会是问题,我认为。
    【解决方案2】:

    我想我找到了自己问题的部分答案:

    我可以像这样遍历系列数据点:

    http://api.highcharts.com/highcharts#Series.data

    然后拨打point.Remove

    这个解决方案的问题是它没有像示例中那样绘制监视器样式, 而是在每次更改时重新绘制整个图表。

    http://jsfiddle.net/JKCLx/

    $(function () {
        $(document).ready(function() {
            Highcharts.setOptions({
                global: {
                    useUTC: false
                }
            });
    
            var chart;
            $('#container').highcharts({
                chart: {
                    type: 'spline',
                    animation: Highcharts.svg, // don't animate in old IE
                    marginRight: 10,
                    events: {
                        load: function() {
    
                            // set up the updating of the chart each second
                            var series = this.series[0];
                            setInterval(function() {
                                var x = (new Date()).getTime(), // current time
                                    y = Math.random();
                                series.addPoint([x, y], true, false);                           
                               // series.data[0].remove(false);
                                series.data[0].remove(true);
                            }, 1000);
                        }
                    }
                },
                title: {
                    text: 'Live random data'
                },
                xAxis: {
                    type: 'datetime',
                    tickPixelInterval: 150
                },
                yAxis: {
                    title: {
                        text: 'Value'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    formatter: function() {
                            return '<b>'+ this.series.name +'</b><br/>'+
                            Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
                            Highcharts.numberFormat(this.y, 2);
                    }
                },
                legend: {
                    enabled: false
                },
                exporting: {
                    enabled: false
                },
                series: [{
                    name: 'Random data',
                    data: (function() {
                        // generate an array of random data
                        var data = [],
                            time = (new Date()).getTime(),
                            i;
    
                        for (i = -19; i <= 0; i++) {
                            data.push({
                                x: time + i * 1000,
                                y: Math.random()
                            });
                        }
                        return data;
                    })()
                }]
            });
        });
    
    });
    

    【讨论】:

    • 在 remove() 点中,您可以将 redraw 设置为 false,并且仅在最后一个 remove() 上设置为 true。然后动画/重绘将被单次调用。
    • 是的,但这仍然没有提供与 shift 相同的动画,请查看随附的 jsfiddle。点都重绘了。
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 2016-10-15
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    相关资源
    最近更新 更多