簡體   English   中英

如何使用高位圖將系列數據動態添加到折線圖

[英]How to dynamically add Series of data to line chart using high chart

來自webservice的數據是從BindTrend方法獲取的,並在綁定到圖表之前被解析為Json對象:我的代碼如下:

 var plot;
    var itemdata = [];
    var chart;
    var data = [];
 $(document).ready(function () {

            $.ajax({
            type: "POST",
            url: "ChartBinder.asmx/BindTrend",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {           
               var newJ = $.parseJSON(msg.d);               
                DrawTrend(newJ);
            },
            error: function (msg) {
                alert("Error");
            }
        });    
    })   

    function DrawTrend(plot) {
       for (i = 0; i < plot.length; i++) {
        var x = {}
        x.id=plot[i].Name;
        x.name = plot[i].Name;
        x.data = [plot[i].Value];
        itemdata.push(x);
        }
              chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 25
            },
            series: itemdata
        });
    }

請注意,當我對值'x.data=[1,2,3....]'硬編碼時,我可以獲取圖表。 請幫助。

從您在注釋中提到的內容來看,您的plot [i]看起來像。Value是一個Strings數組,它應該是數字/浮點數數組。 您可以按照以下方式在javascript中進行轉換。 另外,無需在值附近顯式添加[] ,默認情況下,JS數組中包含該值。

   for (i = 0; i < plot.length; i++) {
        var x = {}
        x.id=plot[i].Name;
        x.name = plot[i].Name;

        //plot[i].Value = ["3121", "21211", "3121", "21211", "21000", "9872", "83402", "83402", "28302", "109523", "2832", "9523"];

        var stringArr=plot[i].Value;
        var floatArr=[];
        for(var j=0;j<stringArr.length;j++){
           dobleArr.push(parseFloat(stringArr[j]);
        }
        x.data=floatArr;

        itemdata.push(x);
   }

我建議也通過Highcharts返回錯誤14

是因為您在'for'中聲明了x嗎?

 var x = {}
 function DrawTrend(plot) {
       for (i = 0; i < plot.length; i++) {

        x.id=plot[i].Name;
        x.name = plot[i].Name;
        x.data = [plot[i].Value];
        itemdata.push(x);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM