Ajustement données
This commit is contained in:
@@ -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
20
package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user