我有一个包含大量数据点的图表。我现在正在设置极端值,所以它只显示一个较小的数字——一次大约 100 个左右。我遇到的问题是我不想禁用范围选择器或日期的手动输入,但目前用户可以扩展范围选择器以包含整个数据集。有没有办法限制这一点,所以他们最多只能抢 X 点?
我也不想使用数据分组,我对不同的数据组有不同的数据,所以分组不会改变很重要。在此先感谢您对此的任何指示!
我有一个包含大量数据点的图表。我现在正在设置极端值,所以它只显示一个较小的数字——一次大约 100 个左右。我遇到的问题是我不想禁用范围选择器或日期的手动输入,但目前用户可以扩展范围选择器以包含整个数据集。有没有办法限制这一点,所以他们最多只能抢 X 点?
我也不想使用数据分组,我对不同的数据组有不同的数据,所以分组不会改变很重要。在此先感谢您对此的任何指示!
不幸的是,您不能为此目的禁用范围选择器,但您可以在用户更改极端值后覆盖它们,请参阅:
api.highcharts.com/highstock#xAxis.events.afterSetExtremes 例如,如果用户使用 4 天的范围,而您希望最长 2 天 - 获取最小值或最大值之一,并在极端情况下添加/删除两天(调用图表.xAxis.setExtremes() 具有新的极端)。当然,它会调用另一个 afterSetExtremes,所以这将是无限循环,但是现在极端情况是正确的(两天),所以它不会调用另一个 setExtremes()。
这是一个使用 afterSetExtremes (如 Dexter 描述的)从范围选择器创建最大范围的工作示例:
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);
}
}
}
}
从这个帖子