【问题标题】:Canvasjs library, dataPointsCanvasjs 库,数据点
【发布时间】:2017-09-07 10:00:59
【问题描述】:

如果我添加数据点,我有这样的代码: [{ x: 50, y: 280 },{ x: 60, y: 507 }] 有效。

但在下面的代码中,[{ 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>

【问题讨论】:

  • 确保您的 x/y 值不是字符串,如果是字符串,请将其转换为数字。
  • 同时转换 rss,在你的代码中会在 String 中创建 rss。理想情况下,dataPoints 接受由数字(或数字数组)y 值组成的对象数组。数据点:[{“y”:数字}]

标签: javascript canvasjs


【解决方案1】:

它不起作用,因为 rss 被视为字符串,而不是数组。 您需要执行以下操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多