我见过其他支持分组条形图的javascript图表库,如下图所示,但我没有在chart.js的在线编辑器中看到这是一个显式选项。有没有可能在chart.js中做这种分组条形图?容易吗?他们的在线编辑器中有没有针对它的模板?
flvtvl501#
是的,您可以使用datasets属性提供多个数据集,该属性是一个包含值分组的数组。每个数据集在data中包含一系列与labels相对应的值。根据您的Chart.js版本,请参阅下面两个略有不同的示例。图表. js版本1.x
datasets
data
labels
var ctx = document.getElementById("myChart").getContext("2d"); var data = { labels: ["Chocolate", "Vanilla", "Strawberry"], datasets: [ { label: "Blue", fillColor: "blue", data: [3,7,4] }, { label: "Red", fillColor: "red", data: [4,3,5] }, { label: "Green", fillColor: "green", data: [7,2,6] } ] }; var myBarChart = new Chart(ctx).Bar(data, { barValueSpacing: 20 });
请参阅this JSFiddle。
var ctx = document.getElementById("myChart").getContext("2d"); var data = { labels: ["Chocolate", "Vanilla", "Strawberry"], datasets: [ { label: "Blue", backgroundColor: "blue", data: [3,7,4] }, { label: "Red", backgroundColor: "red", data: [4,3,5] }, { label: "Green", backgroundColor: "green", data: [7,2,6] } ] }; var myBarChart = new Chart(ctx, { type: 'bar', data: data, options: { barValueSpacing: 20, scales: { yAxes: [{ ticks: { min: 0, } }] } } });
vsdwdz232#
是的,可以在chart.js中制作这种分组条形图,而且非常简单
循序渐进:-步骤1:-
首先添加charts.js的脚本链接:-
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
步骤2:-
在html正文中添加div '
<body> <table> <tr> <td> <div id="chart_div" style="width: 800px; height: 300px;"> </div> </td> </tr> </table> </body>
步骤3:-
<script> var densityCanvas = document.getElementById("densityChart"); var Data1 = { label: 'A', data: [3.7, 8.9, 9.8, 3.7, 23.1, 9.0, 8.7, 11.0], backgroundColor: 'rgba(99, 132, 0, 0.6)', borderColor: 'rgba(99, 132, 0, 1)', yAxisID: "y-axis-gravity" } var Data2 = { label: 'B', data: [3.7, 8.9, 9.8, 3.7, 23.1, 9.0, 8.7, 11.0], backgroundColor: 'rgba(99, 132, 0, 0.6)', borderColor: 'rgba(99, 132, 0, 1)', //yAxisID: "y-axis-gravity" } var Data3 = { label: 'C', data: [3.7, 8.9, 9.8, 3.7, 23.1, 9.0, 8.7, 11.0], backgroundColor: 'rgba(99, 132, 0, 0.6)', borderColor: 'rgba(99, 132, 0, 1)', //yAxisID: "y-axis-gravity" }
***注-***:您可以创建多个要显示的变量数据,并仅将yAxisID赋予一个变量数据,然后将其显示为一个组y轴
var planetData = { labels: ["A", "B", "C"], datasets: [Data1,Data2, Data3 ] }; var chartOptions = { scales: { xAxes: [{ barPercentage: 1, categoryPercentage: 0.4 }], yAxes: [{ id: "y-axis-Registered" } ] } }; var barChart = new Chart(densityCanvas, { type: 'bar', data: planetData, options: chartOptions }); </script>
***注意:-***当我试图使用这个离线Chart.js库,并为我的情况创建图表,然后这个漂亮的解决方案帮助我很多:-
图片中上次查看:-In picture Last Look
2条答案
按热度按时间flvtvl501#
是的,您可以使用
datasets
属性提供多个数据集,该属性是一个包含值分组的数组。每个数据集在data
中包含一系列与labels
相对应的值。根据您的Chart.js版本,请参阅下面两个略有不同的示例。
图表. js版本1.x
请参阅this JSFiddle。
图表. js版本2.x
请参阅this JSFiddle。
vsdwdz232#
是的,可以在chart.js中制作这种分组条形图,而且非常简单
循序渐进:-
步骤1:-
首先添加charts.js的脚本链接:-
步骤2:-
在html正文中添加div '
步骤3:-
***注-***:您可以创建多个要显示的变量数据,并仅将yAxisID赋予一个变量数据,然后将其显示为一个组y轴
***注意:-***当我试图使用这个离线Chart.js库,并为我的情况创建图表,然后这个漂亮的解决方案帮助我很多:-
图片中上次查看:-In picture Last Look