如何同时滚动多个AmCharts?

时间:2014-09-02 08:00:48

标签: charts

我刚刚开始使用AmCharts并设置了两个线图,一个在另一个上面,带有各自的滚动条。

现在,我想“链接”两个图的滚动条,这样如果我移动chart1上的滚动条,我将在图表2上获得相同的日期范围。我想这对于监听器,获取值函数和设置值函数来说应该不会太难,但是我无法找到如何获取滚动条的开始/结束值以便我可以使用它们。 / p>

任何帮助都将不胜感激。

感谢

1 个答案:

答案 0 :(得分:1)

AmCharts知识库中有一个演示

https://www.amcharts.com/kbase/share-scrollbar-across-several-charts/

这是同步滚动条的代码,(我添加了注释):

创建一个数组以填充图表

var charts = [];

创建您需要的图表

charts.push(AmCharts.makeChart("chartdiv", chartConfig));
charts.push(AmCharts.makeChart("chartdiv2", chartConfig2));
charts.push(AmCharts.makeChart("chartdiv3", chartConfig3));

迭代图表,为"缩放"添加事件监听器。它将共享事件处理程序

for (var x in charts) {
  charts[x].addListener("zoomed", syncZoom);
}

事件处理程序

function syncZoom(event) {
  for (x in charts) {
    if (charts[x].ignoreZoom) {
      charts[x].ignoreZoom = false;
    }
    if (event.chart != charts[x]) {
      charts[x].ignoreZoom = true;
      charts[x].zoomToDates(event.startDate, event.endDate);
    }
  }
}