var chartColors = { red: 'rgb(255, 99, 132)', blue: 'rgb(54, 162, 235)' }; var color = Chart.helpers.color; var config = { type: 'bar', data: { datasets: [{ type: 'line', yAxisID: 'temperature', backgroundColor: 'transparent', borderColor: chartColors.red, pointBackgroundColor: chartColors.red, tension: 0, fill: false }, { yAxisID: 'precipitation', backgroundColor: color(chartColors.blue).alpha(0.5).rgbString(), borderColor: 'transparent' }] }, plugins: [ChartDataSource], options: { title: { display: true, text: 'JSON data source (index) sample' }, scales: { xAxes: [{ scaleLabel: { display: true, labelString: 'Month' } }], yAxes: [{ id: 'temperature', gridLines: { drawOnChartArea: false }, scaleLabel: { display: true, labelString: 'Temperature (°C)' } }, { id: 'precipitation', position: 'right', gridLines: { drawOnChartArea: false }, scaleLabel: { display: true, labelString: 'Precipitation (mm)' } }] }, plugins: { datasource: { type: 'json', url: 'sample-index.json', rowMapping: 'index', datasetLabels: 'labels', indexLabels: 'indices[*].label', data: 'indices[*].data' } } } }; window.onload = function() { var ctx = document.getElementById('myChart').getContext('2d'); window.myChart = new Chart(ctx, config); };
{ "labels": ["Temperature", "Precipitation"], "indices": [{ "label": "January", "data": [7, 8.1] }, { "label": "February", "data": [7, 14.9] }, { "label": "March", "data": [10, 41.0] }, { "label": "April", "data": [15, 31.4] }, { "label": "May", "data": [20, 42.6] }, { "label": "June", "data": [23, 57.5] }, { "label": "July", "data": [26, 36.0] }] }
<head> <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script> <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datasource@0.1.0"></script> </head> <body> <div> <canvas id="myChart"></canvas> </div> </body>