Estoy usando el siguiente código para generar un gráfico aleatorio usando chart.js. Estoy tratando de usar una función llamada nextDay para agregar nuevos puntos, pero no funciona. nextDay se adjunta a un botón y el objetivo es que cada vez que se presione el botón se agregará un nuevo punto. Cualquier ayuda sería apreciada.
<script> const labels = [ ]; const data = { labels: labels, datasets: [{ label: 'graph', backgroundColor: 'rgb(255, 99, 132)', borderColor: 'rgb(255, 99, 132)', data: [], }] }; const config = { type: 'line', data: data, options: {} }; </script> <script> function draw(){ const myChart = new Chart( document.getElementById('myChart'), config ); } var balance = 0; function nextDay(){ randNum = Math.random() * (max - min) + min; data.datasets[0].data.push(randNum); labels.push('Week ' + (startingCount + 1)); myChart.update(); } function sell(){ balance = balance + randNum; console.log("current balance:" + balance); randNum = 0; } function getStartingValues(){ var max = 100; var min = -100; for (var startingCount = 0; startingCount < 15; startingCount++) { var randNum = (Math.random() * (max - min) + min); max = randNum + 100; min = randNum - 100; data.datasets[0].data.push(randNum); labels.push('Week ' + (startingCount + 1)); } } getStartingValues(); </script>Está actualizando sus variables originales, esto no funciona. Tienes que actualizar chart.js sus datos internos así:
function nextDay() { randNum = Math.random() * (max - min) + min; myChart.data.datasets[0].data.push(randNum); myChart.data.labels.push('Week ' + (startingCount + 1)); myChart.update(); }