function onRefresh(chart) { var t = Date.now(); var data = chart.data.datasets[0].data; var last; t -= t % 5000; if (data.length === 0) { data.push({x: t - 5000, o: 99, h: 101, l: 98, c: 100}); } last = data[data.length - 1]; if (t !== last.x) { var c = last.c; last = {x: t, o: c, h: c, l: c, c: c}; data.push(last); } last.c += Math.random() - 0.5; last.h = Math.max(last.h, last.c); last.l = Math.min(last.l, last.c); } var config = { type: 'candlestick', data: { datasets: [{ data: [], fractionalDigitsCount: 2 }] }, options: { title: { display: true, text: 'Financial chart sample' }, legend: { display: false, }, scales: { xAxes: [{ type: 'realtime', realtime: { duration: 120000, refresh: 500, delay: 0, onRefresh: onRefresh } }] }, tooltips: { position: 'nearest', intersect: false }, animation: { duration: 0 } } }; window.onload = function() { var ctx = document.getElementById('myChart').getContext('2d'); window.myChart = new Chart(ctx, config); };
<head> <script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/min/moment.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.4"></script> <script src="https://cdn.jsdelivr.net/gh/chartjs/chartjs-chart-financial@f0c37e1dc24923a02c7793df8a292921db4b46cb/docs/chartjs-chart-financial.js"></script> <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-streaming@1.9.0"></script> </head> <body> <div> <canvas id="myChart"></canvas> </div> </body>