将滚动条保持在相同位置实时图表

时间:2017-08-14 16:57:18

标签: amcharts

在AmCharts中创建实时图表时(例如:http://jsfiddle.net/amcharts/ATQUm/) 似乎当一个触发this.state.chart.validateData()时,滚动条的范围将重置为全范围,除非用户单击并按住同一位置的滚动条。

有没有办法在数据更新时保留该范围,而无需按住按钮?

1 个答案:

答案 0 :(得分:1)

假设您希望日期选择在更新之间保持不变,您可以在图表对象中将zoomOutOnDataUpdate设置为false,滚动条将保留在所选日期范围内;例如,如果您在2017-07-01至2017-08-01期间放大,则更新之间仍会显示该日期范围。

Demo

如果您在图表中滑动旧点,就像在该演示中一样,那么zoomOutOnDataUpdate并不会完全解决问题,因为日期范围最终会随着点的移除而下降,因为您可能会注意到上面的演示(右侧滚动条手柄向左缓慢移动)。在这种情况下,您需要维护图表的当前startIndexendIndex并在更新后调用zoomToIndexes,即

    var startIndex = chart.startIndex;
    var endIndex = chart.endIndex;
    chart.validateData();
    chart.zoomToIndexes(startIndex, endIndex);

Demo

仅供参考,您链接的小提琴使用较旧版本的AmCharts(v2)。我的小提琴正在使用最新的v3版本。