0

我有一个包含大量数据点的图表。我现在正在设置极端值,所以它只显示一个较小的数字——一次大约 100 个左右。我遇到的问题是我不想禁用范围选择器或日期的手动输入,但目前用户可以扩展范围选择器以包含整个数据集。有没有办法限制这一点,所以他们最多只能抢 X 点?

我也不想使用数据分组,我对不同的数据组有不同的数据,所以分组不会改变很重要。在此先感谢您对此的任何指示!

4

2 回答 2

0

不幸的是,您不能为此目的禁用范围选择器,但您可以在用户更改极端值后覆盖它们,请参阅:

api.highcharts.com/highstock#xAxis.events.afterSetExtremes 例如,如果用户使用 4 天的范围,而您希望最长 2 天 - 获取最小值或最大值之一,并在极端情况下添加/删除两天(调用图表.xAxis.setExtremes() 具有新的极端)。当然,它会调用另一个 afterSetExtremes,所以这将是无限循环,但是现在极端情况是正确的(两天),所以它不会调用另一个 setExtremes()。

于 2014-08-20T14:46:12.837 回答
0

这是一个使用 afterSetExtremes (如 Dexter 描述的)从范围选择器创建最大范围的工作示例:

http://jsfiddle.net/B7vCR/3/

xAxis: {
            minRange:6 * 30 * 24 * 3600 * 1000,
            events: {
                afterSetExtremes: function(e) {
                    var maxDistance = 10 * 30 * 24 * 3600 * 1000; //8 months time
                    var xaxis = this;
                    if ((e.max - e.min) > maxDistance) {
                        var min = e.max - maxDistance;
                        var max = e.max;
                        window.setTimeout(function() {
                            xaxis.setExtremes(min, max);
                        }, 1);
                    }
                }
            }
        }

从这个帖子

http://forum.highcharts.com/viewtopic.php?f=12&t=21741

于 2016-08-15T21:34:34.790 回答