Ajustement données

This commit is contained in:
2025-10-18 06:54:35 +02:00
parent 43ded8e883
commit 03c8429db4
4 changed files with 49 additions and 18 deletions

View File

@@ -8,22 +8,31 @@
<h2>Distribution des âges</h2> <h2>Distribution des âges</h2>
<section id="stats" style="margin-bottom: 2rem;"> <section id="stats" style="margin-bottom: 2rem;">
<h3>Indicateurs clés</h3> <h3>Indicateurs clés</h3>
<table> <div style="display: flex">
<tr> <div>
<td class="strong">Individus</td><td id="total" class="number"></td> <p><span class="strong">Individus :</span> <span id="total" class="number"></span><br>
<td class="strong">Âge moyen</td><td id="mean" class="number"></td> <span class="strong">Âge moyen :</span><span id="mean" class="number"></span><br>
</tr> <span class="strong">Médiane :</span> <span id="median" class="number"></span><br>
<tr> <span class="strong">Écart-type :</span> <span id="ecart" class="number"></span><br>
<td class="strong">Médiane</td><td id="median" class="number"></td> <span class="strong">Minimum :</span> <span id="min" class="number"></span><br>
<td class="strong">Écart-type</td><td id="ecart" class="number"></td> <span class="strong">Maximum :</span> <span id="max" class="number"></span>
</tr> </div>
<tr> <div>
<td class="strong">Minimum</td><td id="min" class="number"></td> <canvas id="genreChart" width="200" height="200"></canvas>
<td class="strong">Maximum</td><td id="max" class="number"></td> </div>
</tr> <div>
</table> <canvas id="classeChart" width="200" height="200"></canvas>
</div>
</div>
</section> </section>
<canvas id="ageChart" width="600" height="400"></canvas> <canvas id="ageChart" width="600" height="400"></canvas>
<div style="display: flex;">
<div><canvas id="wealthChart" width="300" height="300"></canvas></div>
<div><canvas id="educationChart" width="300" height="300"></canvas></div>
</div>
<div><canvas id="heatmapChart" width="200" height="200"></canvas>
<div><canvas id="radarChart" width="200" height="200"></canvas>
<script type="module" src="/src/individus.ts"></script> <script type="module" src="/src/individus.ts"></script>
</body> </body>
</html> </html>

20
package-lock.json generated
View File

@@ -9,6 +9,8 @@
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"chart.js": "^4.5.1", "chart.js": "^4.5.1",
"chartjs-chart-matrix": "^3.0.0",
"chartjs-plugin-datalabels": "^2.2.0",
"graphology": "^0.26.0", "graphology": "^0.26.0",
"graphology-layout-forceatlas2": "^0.10.1", "graphology-layout-forceatlas2": "^0.10.1",
"jstat": "^1.9.6", "jstat": "^1.9.6",
@@ -370,6 +372,24 @@
"pnpm": ">=8" "pnpm": ">=8"
} }
}, },
"node_modules/chartjs-chart-matrix": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chartjs-chart-matrix/-/chartjs-chart-matrix-3.0.0.tgz",
"integrity": "sha512-lUWC1UaWkxGdG02dBJ5r1ppbSYB/uWmwAh11VEs7V3ZQItNCk4am+rmacwkgeb+SQeEj2hP9Qq4oGsUmPl/1lQ==",
"license": "MIT",
"peerDependencies": {
"chart.js": ">=3.0.0"
}
},
"node_modules/chartjs-plugin-datalabels": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/chartjs-plugin-datalabels/-/chartjs-plugin-datalabels-2.2.0.tgz",
"integrity": "sha512-14ZU30lH7n89oq+A4bWaJPnAG8a7ZTk7dKf48YAzMvJjQtjrgg5Dpk9f+LbjCF6bpx3RAGTeL13IXpKQYyRvlw==",
"license": "MIT",
"peerDependencies": {
"chart.js": ">=3.0.0"
}
},
"node_modules/detect-libc": { "node_modules/detect-libc": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",

View File

@@ -17,6 +17,8 @@
}, },
"dependencies": { "dependencies": {
"chart.js": "^4.5.1", "chart.js": "^4.5.1",
"chartjs-chart-matrix": "^3.0.0",
"chartjs-plugin-datalabels": "^2.2.0",
"graphology": "^0.26.0", "graphology": "^0.26.0",
"graphology-layout-forceatlas2": "^0.10.1", "graphology-layout-forceatlas2": "^0.10.1",
"jstat": "^1.9.6", "jstat": "^1.9.6",

View File

@@ -69,9 +69,9 @@ function randomSex(age:number) {
let c = 0.55; let c = 0.55;
if (age < 30) if (age < 30)
c = 0.51; c = 0.52;
else if (age < 55) else if (age < 55)
c = 0.45; c = 0.46;
return Math.random() < c ? "F" : "M"; return Math.random() < c ? "F" : "M";
} }
@@ -112,8 +112,8 @@ function randomEducation(age:number) {
} }
function randomWealth(education:number) { function randomWealth(education:number) {
// Ajoute un bruit gaussien (moyenne 0, écart-type 0.9) // Ajoute un bruit gaussien (moyenne 0, écart-type 0.7)
const wealthCont = education + jStat.normal.sample(0, 0.9); const wealthCont = education / 2 + jStat.normal.sample(0.2, 0.9);
// Classification en 4 niveaux selon la valeur continue // Classification en 4 niveaux selon la valeur continue
let wealth; let wealth;