NGX图表气泡图如何重新加载显示的数据

时间:2019-06-19 15:59:40

标签: javascript angular typescript ngx-charts

我有一个来自ngx图的气泡图(将其用作散点图,但无论如何)。设置HTML,以便当用户单击页面的元素时,图表的内容将基于updateTitleData()函数进行更改。但是,在测试中,当我单击元素时,scatterData数组的数据会更改,但这不会更改实际显示的图表。所以我的问题是如何让图表在运行时动态重新加载。

我已经在线阅读了一些有关它的信息,人们说过,您需要更改实际的scatterData数组,而不仅仅是我通过在{ {1}}保留了整个数组,然后在函数末尾突出显示"series",该函数再次正确设置了数据,但仍未导致图表更新。

我还读到您需要在HTML代码中放入updateTitleData,然后在打字稿代码中定义图表变量时,先使用this.scatterData=newData;,然后再定义函数[update$]="update$",以便您只要需要更新图表就可以致电update$: Subject<any> = new Subject();。我尝试过,但是由于updateChart(){ this.update$.next(true); }元素包含在其构造函数中,因此在加载时它只会引发错误。

updateChart()

这是有问题的代码。该图表的确显示了在开始时定义的[update$]="update$"元素,但是应在单击该元素后立即将其删除并替换。

1 个答案:

答案 0 :(得分:0)

我知道了。 我没有正确填充“系列”元素。

我所拥有的:

this.jobTitles.forEach((value) => {
     var newScatterData = [{
        "name":value                 
        "x":parseFloat(this.regionData.x_axis[value]),
        "y":parseInt(this.regionData.y_axis[value]),
        "r":1
    }];
         this.scatterData["series"].push(newScatterData);
});

我需要什么:

this.jobTitles.forEach((value) => {
     var newScatterData = {
        "name":value                 
        "x":parseFloat(this.regionData.x_axis[value]),
        "y":parseInt(this.regionData.y_axis[value]),
        "r":1
    };
         this.scatterData[0]["series"].push(newScatterData);
});
this.scatterData=[...this.scatterData];

基本上需要[0]前面的["series"],并且需要从newScatterData中删除数组元素。