1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[Chart.js] Graphe dynamique</title>
<meta name="Author" content="NoSmoking">
<meta name="DVP-discussion" content="d2024570">
<style>
html, body {
margin: 1em;
padding: 0;
font: 1em/1.5 Verdana,sans-serif;
}
h1, h2, h3 {
color: #069;
}
.cadre-canvas {
width: 60%;
margin-left: 1em;
}
</style>
</head>
<body>
<h1>[Chart.js] Graphe dynamique</h1>
<div class="cadre-canvas">
<canvas id="canvas"></canvas>
</div>
<script src="https://npmcdn.com/chart.js@2.9.3/dist/Chart.bundle.min.js"></script>
<script>
"use strict";
// Maxi pour random
const ValeurMax = 1500;
// mini pour random
const ValeurMin = 150;
// offset des valeurs à modifier pour cet exemple
const OffsetValeurs = [2, 5, 8];
// modification de quelques valeurs par défaut
Chart.defaults.global.defaultFontFamily = "Verdana";
// création du graphique
const oChart = new Chart(document.getElementById("canvas"), {
"type": "line",
"data": {
"labels": ["", "", "", "", "", "", "", "", "", "", ""],
"datasets": [{
"backgroundColor": "#CDE",
"borderColor": "#06A",
"data": [-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5]
}]
},
"options": {
"legend": {
"display": false
},
"elements": {
"line": { "borderWidth": 1},
"point": { "radius": 0}
},
"scales": {
"xAxes": [{
"ticks": {
"fontSize": 20
}
}],
"yAxes": [{
"ticks": {
"stepSize": ValeurMax /10,
"max": ValeurMax,
"min": 0 // pour ne pas voir les valeurs négatives
}
}]
}
}
});
// update des données des séries
function updateDatas() {
OffsetValeurs.forEach(function (offset) {
// récup. valeur aléatoire
let val = Math.floor(Math.random() * (ValeurMax - ValeurMin)) + ValeurMin;
// change la valeur concernée
oChart.data.datasets[0].data[offset] = val;
// modifie la valeur affichée
oChart.data.labels[offset] = val;
});
// redraw la Chart
oChart.update();
}
// mise à jour données
updateDatas();
// lance la remise à jour
setInterval(updateDatas, 5000);
</script>
</body>
</html> |
Partager