通过分组移动动态图

时间:2019-09-12 12:57:18

标签: plot highcharts

我尝试编写一个高脚椅代码以使移动线与现实时间(手动操作)

第一点与标准线相同且不能移动

其他点可以向右或向左移动

当我移动第二点时,其他点也可以移动

但是当我移动3点(或更多点)时,第二点也移动了,而且还不行,我需要后面的点也不要移动

我尝试使用groupid解决方案... 我选择了x点,x + 1,x + 2,x + 3点也移动了,但是x-1,x-2点没有一起分组(所以不要移动)

移动点时如何分组和取消分组?

我该如何限制所选的最小点以不向左移动x-1点?

感谢您的帮助

我执行以下代码:jsfiddle.net/arawn45/60bdzu4o/14/

一段代码:

 groupId: 'Group A',

3 个答案:

答案 0 :(得分:0)

我找到了限制数据下移动点的解决方案

                if (Highcharts.dateFormat('%e - %b - %Y', new Date(this.x)) ==
                (Highcharts.dateFormat('%e - %b - %Y',  Date.UTC(1970, 10, 9)))) {
                    setDragStatus('erreur condition 1 '+Highcharts.dateFormat('%e - %b - %Y', new Date(this.x))+' ');
                    return false;
                }

我不知道该怎么做

如果(Highcharts.dateFormat('%e-%b-%Y',新的Date(this.x))<                     (日期点1)

... 谢谢您的帮助

答案 1 :(得分:0)

mouseOver事件函数中,可以通过更改x值较低的点的groupId属性来减少拖动的点数:

series: [{
    point: {
        events: {
            mouseOver: function() {
                var points = this.series.points;

                points.forEach(function(point, i) {
                    if (i && point.x < this.x) {
                        point.update({
                            groupId: false
                        }, false);
                    }
                }, this);
            },

            mouseOut: function() {
                var points = this.series.points;

                points.forEach(function(point, i) {
                    if (i) {
                        point.update({
                            groupId: 'Group A'
                        }, false);
                    }
                });
            }
        }
    },
    ...
}]

实时演示: http://jsfiddle.net/BlackLabel/apqbd3ft/

API参考:

https://api.highcharts.com/highcharts/series.scatter.point.events.mouseOver

https://api.highcharts.com/highcharts/series.scatter.point.events.mouseOut

https://api.highcharts.com/class-reference/Highcharts.Point#update

答案 2 :(得分:0)

非常感谢 看起来就像我想做的

当我将point.date之前比point-1.date左移一点时,请添加一个限制。

谢谢