Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 分组条形图_Javascript_Jquery_Json_Angularjs_Chart.js - Fatal编程技术网

Javascript 分组条形图

Javascript 分组条形图,javascript,jquery,json,angularjs,chart.js,Javascript,Jquery,Json,Angularjs,Chart.js,我对使用ChartJs作为JavaScript库非常陌生,我在制作一个分组条形图时遇到了一些困难,该条形图读取每个JSON对象并将其作为自己的记号放置在X轴上 这真的很难解释,但我想以星期一的JSON对象为例,我想在X轴上显示星期一,以及我想在图表上显示为分组条形图后的所有内容(我想在图表上显示原始的_tweet、retweets等) 然而现在它只是复制它 index.html: <!DOCTYPE html> <html lang="en"> &l

我对使用ChartJs作为JavaScript库非常陌生,我在制作一个分组条形图时遇到了一些困难,该条形图读取每个JSON对象并将其作为自己的记号放置在X轴上

这真的很难解释,但我想以星期一的JSON对象为例,我想在X轴上显示星期一,以及我想在图表上显示为分组条形图后的所有内容(我想在图表上显示原始的_tweet、retweets等)

然而现在它只是复制它


index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div style="width: 100%; height: 100%;">
    <canvas id="myChart" style="width: 100%; height: auto;"></canvas>
</div>
<div id="js-legend" class="chart-legend"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1/Chart.min.js"></script>
<script src="js/chartJsControl.js"></script>
</body>
</html>
$.getJSON("data.json", function (json) {
    // will generate array with ['Monday', 'Tuesday', 'Wednesday']
    var labels = json.map(function (item) {
        return item.timestamp;
    });
    var tweet = json.map(function (item) {
        return item.original_tweet;
    });
    var data = {
        labels: labels,
        datasets: [{
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.5)",
            strokeColor: "rgba(220,220,220,0.8)",
            highlightFill: "rgba(220,220,220,0.75)",
            highlightStroke: "rgba(220,220,220,1)",
            data: tweet
        }, {
            label: "My Second dataset",
            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: tweet
        }]
    };
    var ctx = document.getElementById("myChart").getContext("2d");
    ctx.canvas.width = 1000;
    ctx.canvas.height = 800;
    var myChart = new Chart(ctx).Bar(data);
});
[{
    "timestamp": "Monday",
    "original_tweet": "756",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Tuesday",
    "original_tweet": "456",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Wednesday",
    "original_tweet": "956",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}]
data.json:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div style="width: 100%; height: 100%;">
    <canvas id="myChart" style="width: 100%; height: auto;"></canvas>
</div>
<div id="js-legend" class="chart-legend"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1/Chart.min.js"></script>
<script src="js/chartJsControl.js"></script>
</body>
</html>
$.getJSON("data.json", function (json) {
    // will generate array with ['Monday', 'Tuesday', 'Wednesday']
    var labels = json.map(function (item) {
        return item.timestamp;
    });
    var tweet = json.map(function (item) {
        return item.original_tweet;
    });
    var data = {
        labels: labels,
        datasets: [{
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.5)",
            strokeColor: "rgba(220,220,220,0.8)",
            highlightFill: "rgba(220,220,220,0.75)",
            highlightStroke: "rgba(220,220,220,1)",
            data: tweet
        }, {
            label: "My Second dataset",
            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: tweet
        }]
    };
    var ctx = document.getElementById("myChart").getContext("2d");
    ctx.canvas.width = 1000;
    ctx.canvas.height = 800;
    var myChart = new Chart(ctx).Bar(data);
});
[{
    "timestamp": "Monday",
    "original_tweet": "756",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Tuesday",
    "original_tweet": "456",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Wednesday",
    "original_tweet": "956",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}]
屏幕截图:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div style="width: 100%; height: 100%;">
    <canvas id="myChart" style="width: 100%; height: auto;"></canvas>
</div>
<div id="js-legend" class="chart-legend"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1/Chart.min.js"></script>
<script src="js/chartJsControl.js"></script>
</body>
</html>
$.getJSON("data.json", function (json) {
    // will generate array with ['Monday', 'Tuesday', 'Wednesday']
    var labels = json.map(function (item) {
        return item.timestamp;
    });
    var tweet = json.map(function (item) {
        return item.original_tweet;
    });
    var data = {
        labels: labels,
        datasets: [{
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.5)",
            strokeColor: "rgba(220,220,220,0.8)",
            highlightFill: "rgba(220,220,220,0.75)",
            highlightStroke: "rgba(220,220,220,1)",
            data: tweet
        }, {
            label: "My Second dataset",
            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: tweet
        }]
    };
    var ctx = document.getElementById("myChart").getContext("2d");
    ctx.canvas.width = 1000;
    ctx.canvas.height = 800;
    var myChart = new Chart(ctx).Bar(data);
});
[{
    "timestamp": "Monday",
    "original_tweet": "756",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Tuesday",
    "original_tweet": "456",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}, {
    "timestamp": "Wednesday",
    "original_tweet": "956",
    "retweets": "345",
    "shared": "34",
    "quoted": "14"
}]

根据您的要求,数据变量中的数据集数组应如下所示:

var数据={
标签:[“星期一”、“星期二”、“星期三”],
数据集:[{
标签:“原创推特”,
填充颜色:“rgba(220220,0.5)”,
strokeColor:“rgba(2200,0.8)”,
高光填充:“rgba(2200,0.75)”,
强光笔划:“rgba(2201)”,
数据:[756456956]
}, {
标签:“转发”,
填充颜色:“rgba(151187205,0.5)”,
strokeColor:“rgba(151187205,0.8)”,
高光填充:“rgba(151187205,0.75)”,
强光笔划:“rgba(151187205,1)”,
数据:[345]
}, {
标签:“共享”,
填充颜色:“rgba(151187205,0.5)”,
strokeColor:“rgba(151187205,0.8)”,
高光填充:“rgba(151187205,0.75)”,
强光笔划:“rgba(151187205,1)”,
数据:[34,34,34]
}, {
标签:“引用”,
填充颜色:“rgba(151187205,0.5)”,
strokeColor:“rgba(151187205,0.8)”,
高光填充:“rgba(151187205,0.75)”,
强光笔划:“rgba(151187205,1)”,
数据:[14,14,14]
}]
};