繁体   English   中英

Chartjs Array.join

[英]Chartjs Array.join

嗨,我正在为我的服务器监控创建一些图表。 我正在使用 Php 获取数据并将其作为数组传递给 javasccript:

<script>


    var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

    var obj = JSON.parse('<?php echo json_encode($names) ?>');
    var datenbarchart = obj.join(",");
    var obj1 = JSON.parse('<?php echo json_encode($nameserver) ?>');

    var barChartData = {
        labels : [ obj1[0], obj1[1], obj1[2], obj1[3], obj1[4], obj1[5], obj1[6]],
        datasets : [
            {
                fillColor: "rgba(151,187,205,0.5)",
            strokeColor: "rgba(151,187,205,0.8)",
            highlightFill: "rgba(151,187,205,0.75)",
            highlightStroke: "rgba(151,187,205,1)",
                data : [datenbarchart]
            }
        ]

    }
    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myBar = new Chart(ctx).Bar(barChartData, {
            responsive : true
        });
    }

    </script>

问题部分是,我尝试使用 join 方法将第一个数组分开以获得一个由","分隔的字符串:

var datenbarchart = obj.join(",");

当我将其传递给 Chartjs Data 时,通常数据看起来像这样: data: [60,50,40,50]它不会在图表中显示任何数据。 难道不能用一个字符串来做到这一点,因为它需要每个条形的整个字符串吗?

根据http://www.chartjs.org/docs/数据字段是一个数组,所以你的语法应该是:

var datenbarchart = obj;

...

var barChartData = {
    labels : [ obj1[0], obj1[1], obj1[2], obj1[3], obj1[4], obj1[5], obj1[6]],
    datasets : [
        {
            fillColor: "rgba(151,187,205,0.5)",
        strokeColor: "rgba(151,187,205,0.8)",
        highlightFill: "rgba(151,187,205,0.75)",
        highlightStroke: "rgba(151,187,205,1)",
            data : datenbarchart
        }
    ]

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM