UNPKG

chart.js

Version:

Simple HTML5 charts using the canvas element.

142 lines (128 loc) 3.76 kB
<!doctype html> <html> <head> <title>Line Chart</title> <script src="../node_modules/moment/min/moment.min.js"></script> <script src="../dist/Chart.bundle.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.js"></script> <style> canvas { -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; } </style> </head> <body> <div style="width:75%;"> <canvas id="canvas"></canvas> </div> <script src="zoom.js"></script> <script> var timeFormat = 'MM/DD/YYYY HH:mm'; function randomScalingFactor() { return Math.round(Math.random() * 100 * (Math.random() > 0.5 ? -1 : 1)); } function randomColorFactor() { return Math.round(Math.random() * 255); } function randomColor(opacity) { return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')'; } function newDate(days) { return moment().add(days, 'd').toDate(); } function newDateString(days) { return moment().add(days, 'd').format(timeFormat); } function newTimestamp(days) { return moment().add(days, 'd').unix(); } var config = { type: 'line', data: { labels: [newDate(0), newDate(1), newDate(2), newDate(3), newDate(4), newDate(5), newDate(6)], // Date Objects datasets: [{ label: "My First dataset", data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()], fill: false, borderDash: [5, 5], }, { label: "My Second dataset", data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()], }, { label: "Dataset with point data", data: [{ x: newDateString(0), y: randomScalingFactor() }, { x: newDateString(5), y: randomScalingFactor() }, { x: newDateString(7), y: randomScalingFactor() }, { x: newDateString(15), y: randomScalingFactor() }], fill: false }] }, options: { responsive: true, title:{ display:true, text:"Chart.js Time Scale" }, scales: { xAxes: [{ type: "time", time: { format: timeFormat, // round: 'day' tooltipFormat: 'll HH:mm' }, scaleLabel: { display: true, labelString: 'Date' }, ticks: { maxRotation: 0 } }, ], yAxes: [{ scaleLabel: { display: true, labelString: 'value' } }] }, pan: { enabled: true, mode: 'xy' }, zoom: { enabled: true, mode: 'xy', limits: { max: 10, min: 0.5 } } } }; $.each(config.data.datasets, function(i, dataset) { dataset.borderColor = randomColor(0.4); dataset.backgroundColor = randomColor(0.5); dataset.pointBorderColor = randomColor(0.7); dataset.pointBackgroundColor = randomColor(0.5); dataset.pointBorderWidth = 1; }); window.onload = function() { var ctx = document.getElementById("canvas").getContext("2d"); window.myLine = new Chart(ctx, config); }; </script> </body> </html>