AmCharts 4 DataSource:强制图表等待所有外部数据加载

时间:2018-11-10 00:19:56

标签: javascript amcharts

我正在使用AmCharts 4创建带有外部数据的散点图,并使用此代码指向外部URL:

dataURL = 'http://somesite.com/page?params=1234';
ScatterChart.dataSource.disableCache = true;
ScatterChart.dataSource.url = dataURL;

图表加载;但是,每次加载图表时,它都会给我一组不同的数据,并且始终会丢失我期望的大量数据。当我转到dataURL时,外部数据将在大约20秒的时间内下载到其URL中。我认为它不是在等待数据源页面在绘制图形之前完成信息的下载。

是否有一种方法可以强制AmCharts在绘制图表之前等待数据源完成加载?

这是dataURL的网络视图的屏幕截图:

screenshot of the network view

1 个答案:

答案 0 :(得分:1)

离开该项目一段时间,但最近又重新开始,并确定图表仅显示某些数据点的原因是由于数据的排序顺序,而不是由于数据加载的任何超时。

在这种情况下,我将描述构建带有日期X轴和值Y轴的散点XY图表时发生的情况。

The documentation说,由于线的连接方式混乱,顺序对于线系列可能很重要,但是它并没有说不会显示乱序数据。当我进行实验时,我发现情况不一定如此。

当我按日期X轴升序排序时,所有数据都会显示。

<suffixes>(?&lt;!Integration)(Test|Tests|Spec)</suffixes>

Ascending Sort

当我不按日期对数据进行排序时,它只会显示我的一些信息。

No Sort

按日期列排序时,降序仅在图表上显示一个数据点。

data = data.sort((a, b) => a['DateX'] < b['DateX'] ? -1 : a['DateX'] < b['DateX'] ? 1 : 0) Descending Sort

最后,如果您遇到这种情况,请确保先对数据进行排序,然后再将其发送到图表。