amCharts错误缩放startDates和endDates

时间:2017-12-28 11:50:12

标签: javascript amcharts

我正在使用amCharts显示股票数据。我有7个缩放级别:1H, 1D, 1W, 1M, 3M, 1Y, MAX。对于1H,1D,我使用的数据集包含分钟数据。对于1W,1M,我使用具有小时数据的不同数据集。对于其他3个级别,我有另一个数据集,其中包含日期数据。现在这是我的问题:

最初,我在默认缩放级别1D加载分钟数据,并在点击1W按钮或任何进一步缩放级别按钮后,将监听器"changed"添加到chart.periodSelector,差异以分钟为单位生成事件的startDate和endDate:var minsDiff = (event.endDate.getTime() - event.startDate.getTime()) / 60000始终等于 1天(1440)中的分钟数,而不是 7天

我想这可能是因为加载的当前数据集是分钟数据集,最大数据点数为1440。因此,可能将1周的日期范围设置为等于1天,因为只有那么多数据可用。但是,如果我点击1W按钮,我想要的是1周的实际日期范围,因为我想加载具有不同数据集的不同图表(1W的小时数据)。

我尝试使用图表的监听器"zoomed"。但同样的问题仍然存在。

1 个答案:

答案 0 :(得分:2)

除非您将hideOutOfScopePeriods设置为false,否则通常不会显示超出范围期间。正如您所注意到的,如果某个句点大于可用数据量,那么图表将截断缩放以适合您拥有的数据。检查changed事件中的predifinedPeriod属性是查看单击哪个按钮的可靠方法,这将有助于此数据不一定包含整个时间段的情况:

listeners: [
  {
    event: "changed",
    method: function(eventObj) {
      console.log("clicked " + eventObj.predefinedPeriod);
    }
  }
]