2017-09-07 6 views
0

dataPoints를 추가하면 코드가 있습니다. [{x : 50, y : 280}, {x : 60, y : 507}] 작동합니다.Canvasjs 라이브러리, dataPoints

아래의 코드에서 [{x : 50, y : 280}, {x : 60, y : 507}]은 변수 rss에 있지만 작동하지 않습니다.

<script type="text/javascript"> 
     window.onload = function() { 

     var year = ('<?php echo $rs; ?>'); 

     var jsontoarray = JSON.parse(year); 

     var props = Object.keys(jsontoarray); 
     var rss = "["; 
     for (var i = 0; i < props.length; i++) { 
      rss += "{ x: " + props[i] + ", y: " + jsontoarray[props[i]] + "},"; 
     } 

     rss = rss.substr(0, rss.length - 1); //bỏ dấu , cuối cùng 
     rss += "]"; 

      var chart = new CanvasJS.Chart("chartContainer", { 
      title: { 
       text: "Column Chart with Index Label and Data Point Width" 
      }, 
      axisX: { 
       interval: 10 
      }, 
      dataPointWidth: 60, 
      data: [{ 
       type: "column", 
       indexLabelLineThickness: 2, 
       dataPoints: rss 
      }] 
      }); 
     chart.render(); 
     } 
    </script> 

    <div id="chartContainer" style="height: 400px; width: 95%; margin: auto;"></div> 
+0

x/y 값이 문자열이 아닌지 확인하십시오. 문자열 인 경우 번호로 변환하십시오. – Sanjoy

+0

또한 rss를 변환하면 코드에서 rss가 String으로 작성됩니다. 이상적으로 dataPoints는 숫자 (또는 숫자의 배열) y 값으로 구성된 객체의 배열을 허용합니다. dataPoints : [{ "y": number}] – Sanjoy

답변

1

rss가 문자열이 아닌 배열로 표시되기 때문에 작동하지 않습니다. 다음과 같이해야합니다 :

var rss = []; 
for (var i = 0; i < props.length; i++) { 
    rss.push({ 
     x: props[i], 
     y: jsontoarray[props[i]] 
    }); 
}