Graphiques d'évolution générale
Les 4 séries de graphiques du menu :
- Évolution générale
- Évolution par classe d'âge
- Évolution par région
- Évolution par département d'outre-mer
sont générées selon le même principe.
Tout d'abord, comme pour la présentation des données sous forme de
tableaux, il est nécessaire de mettre à jour périodiquement le fichier
csv local à partir du fichier csv de référence. Pour cela, on fait
appel à la même fonction
testmaj_.... ()
Les données étant présentées sous la forme de graphiques (qui sont des
images au format BMP), ces graphiques devront être mis à jour chaque fois
que le fichier csv local qui a permit de les générer est actualisé.
Ce tableau indique pour chaque série de graphiques quels fichiers sont
utilisés.
Critère de tri | Fichier csv local |
Fonction de mise à jour | Nom des graphiques |
Général |
vacsi-a-fra.csv |
testmaj_a_fra () |
graph-age-ta.bmp |
Par classe d'âge |
vacsi-a-fra.csv |
testmaj_a_fra () |
graph-age-??.bmp |
Par région |
vacsi-reg.csv |
testmaj_regdom () |
graph-reg-???.bmp |
Par DOM |
vacsi-dom.csv |
Voir explication |
graph-dom-???.bmp |
Comme le fichier de référence
vacsi-a-fra.csv indique
l'évolution de la vaccination tous âges confondus, en plus de
l'évolution par classe d'âge, c'est ce même fichier qui est utilisé
dans les deux cas.
Pour les départements d'outre-mer, les données ayant cessé d'être
fournies, le fichier
vacsi-dom.csv est à présent vide si on
tente de le générer et on utilise les graphiques qui représentent
l'évolution de la vaccination jusqu'au 30 novembre 2021.
Si les données pour les DOM redeviennent disponibles, une fonction
testmaj_dom () sera rajoutée.
Comme dans le cas des bargraphes, plusieurs graphiques sont nécessaires
pour représenter l'évolution de la vaccination dans :
- les différentes classe d'âge
- les différentes région
- les différents départements d'outre-mer
Un code de 2 ou 3 caractères remplace les ? dans les noms des graphiques
mentionnés ci-dessus.
Les pages HTML
Voici à titre d'exemple la structure de la partie <body> de la
page qui montre les graphiques d'évolution de la vaccination par
région.
<body>
<div id="contenu" align="center">
<h1>Evolution vaccination COVID 19<br>
en France par région</h1>
<table border="0" align="center">
<tr>
<td width="120px">Légende :</td>
<td bgcolor="#E08000" width="20px"> </td>
<td width="100px">1 dose</td>
<td bgcolor="#00B000" width="20px"> </td>
<td width="100px">Complet</td>
<td bgcolor="#0060E0" width="20px"> </td>
<td>Rappel</td>
</tr>
</table>
<br>
<h2>Auvergne-Rhône-Alpes</h2>
<img src="images/graph-reg-auv.bmp"><br>
<br>
<h2>Bourgogne-Franche-Comté</h2>
<img src="images/graph-reg-bou.bmp"><br>
<br>
<h2>Bretagne</h2>
<img src="images/graph-reg-bre.bmp"><br>
<br>
(...)
<br>
<h2>Provence-Alpes-Côte d’Azur</h2>
<img src="images/graph-reg-pro.bmp"><br>
<br>
</div>
<div id="menu">
XXXMENU
</div>
</body>
Contrairement à ce qui se passe pour les pages du site donnant l'état
de la vaccination à ce jour et pour les pages du site qui montrent des
tables d'évolution de la vaccination, la partie "contenu" de la page
HTML ne contient pas de zone marquée
XXX...
Sa structure et le texte qu'elle contient ne varie pas au fil du temps.
La seule chose qui évolue dans le temps est les graphiques, mais comme
ils gardent le même nom, ça ne change rien à la page HTML.
Les scripts PHP
En prenant toujours comme exemple les graphiques d'évolution par région,
le script PHP commence par recopier le début de la page HTML jusqu'à la
zone "contenu"
// recopier le début de l'entête html en remplaçant noindex par index
copmaj ($descfic, "noindex,", "index,");
// recopier le début du fichier html jusqu'à la zone contenu
copie_jusque_chaine ($descfic, "contenu", 1);
On vérifie alors si le fichier csv local qui sert à générer les
graphiques est à jour et si nécessaire, on l'actualise.
Si le fichier csv local a été mis à jour, il faut le faire aussi pour
tous les graphiques. Pour cela, on compare la date de mise à jour d'un
graphique parmi ceux concernés (dans l'exemple ci dessous, le graphique
pour la région Occitanie) avec celle du fichier csv local.
Si le fichier csv local est plus récent, on utilise la commande
exec du PHP pour lancer l'exécution du programme C
gen-serie-graphiques auquel on passe comme paramètre le nom
du fichier csv local et le début du nom des images bmp à générer.
Si l'exécution du programme C se passe mal, un affichage d'erreur est
prévu. Il est affiché en rouge.
// vérifier si le fichier csv à utiliser est à jour
// l'actualiser si nécessaire
testmaj_regdom ();
// construire le nom du fichier csv
$ficcsv = DIR_CSV."/vacsi-reg.csv";
// si les graphiques sont trop anciens (ou inexistants)
if (filemtime (DIR_IMAGES."/graph-reg-occ.bmp") < filemtime ($ficcsv))
// les créer ou les actualiser
exec ("bin/gen-serie-graphiques ".$ficcsv." images/graph-reg 2>&1", $erreur);
// si erreur pour fabriquer les images
if (count ($erreur))
// l'afficher
echo ' <font color = "#FF0000">'.$erreur [0]."</font><br>\n";
Comme indiqué plus haut, il n'y a rien à modifier dans la partie
"contenu" du fichier HTML. Elle est donc recopiée sans changement
et le script PHP se contente de rajouter le menu vers la fin de la
page HTML.
// copie la suite du fichier html jusqu'à la section du menu
copie_jusque_chaine ($descfic, "XXXMENU");
// générer le menu
genmenu ("menu-vaccin", basename ($_SERVER ['SCRIPT_NAME']));
// copier la fin de la page html
copie_jusque_fin ($descfic);
// terminé avec le fichier html
fclose ($descfic);
Le programme C pour générer les graphiques
Ce point est détaillé
ici.