【问题标题】:amCharts wrong Zoom startDates and endDatesamCharts 错误缩放 startDates 和 endDates
【发布时间】:2017-12-28 11:50:12
【问题描述】:

我正在使用 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"。但同样的问题仍然存在。

【问题讨论】:

  • 你能发布你的图表配置吗?

标签: javascript amcharts


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多