在AmCharts中创建实时图表时(例如:http://jsfiddle.net/amcharts/ATQUm/)
似乎当一个触发this.state.chart.validateData()
时,滚动条的范围将重置为全范围,除非用户单击并按住同一位置的滚动条。
有没有办法在数据更新时保留该范围,而无需按住按钮?
答案 0 :(得分:1)
假设您希望日期选择在更新之间保持不变,您可以在图表对象中将zoomOutOnDataUpdate
设置为false,滚动条将保留在所选日期范围内;例如,如果您在2017-07-01至2017-08-01期间放大,则更新之间仍会显示该日期范围。
如果您在图表中滑动旧点,就像在该演示中一样,那么zoomOutOnDataUpdate
并不会完全解决问题,因为日期范围最终会随着点的移除而下降,因为您可能会注意到上面的演示(右侧滚动条手柄向左缓慢移动)。在这种情况下,您需要维护图表的当前startIndex
和endIndex
并在更新后调用zoomToIndexes
,即
var startIndex = chart.startIndex;
var endIndex = chart.endIndex;
chart.validateData();
chart.zoomToIndexes(startIndex, endIndex);
仅供参考,您链接的小提琴使用较旧版本的AmCharts(v2)。我的小提琴正在使用最新的v3版本。