动态填充的图表数据和数据库存储

Dynamically populated highcharts data and database storing

本文关键字:数据库 存储 数据 填充 动态      更新时间:2023-09-26

我正试图将动态创建的图表中的高图数据存储在数据库中,并将这些数据返回到高图中。为了将数据存储在数据库中,我创建了一个字符串,如下所示:

var chartPoints = "";
var series = chart.series;
for( var i = 0; i < series.length; i++ ) {
    var numberOfPoints = series[i].data.length;     //Get number of points
    for( var n = 0, length = numberOfPoints; n < length; n++ ) {
        chartPoints += '[' + series[i].points[n].x + ',' + series[i].points[n].y + '],';
    }
    chartPoints += '/,';
}

这会创建一个字符串,类似于"[147009600000,0],[14711920000,0],/,[147009600000,-1],[11471219200000,-1]",x值是日期。这是两个系列,系列之间有一个"/"。2个系列各有2个数据点。所有数据点都有一个x和一个y值。这只是一个使用少量点和级数使其工作的示例。

问题是,我不知道如何将该字符串中的值推回到高位图中。我知道我可以像这样动态地将系列添加到高图中:

chart.addSeries({                        
    name: "Test",
    data: [
            [x, y], 
            [x, y]  
        ]
});

但我不知道如何用这样的绳子来做。我试图从字符串中创建一个具有多个维度的数组,以便通过一些循环推送其中的值,但我做不好。最好的方法是什么?

您是否想过将系列数据存储为json字符串,然后将其解析回对象并将其传递到数据参数中?你可以做一些类似的事情:

var sData = JSON.stringify(chart.series[0].options.data);

并将sData存储为字符串。然后加载回高图表做:

var oData = JSON.parse(json_string_from_db);
chart.addSeries({                        
    name: "Test",
    data: oData
});

chart.series[0].setData(oData);

我砰的一声:https://plnkr.co/edit/myGoss?p=preview其使用CCD_ 1设置数据,但可以在创建序列时加载数据。