[(#REM) /*******************************************************************************\ * BIODIV, plugin et squelette pour SPIP - https://www.spip.net/ * * dédié à la gestion d'observations naturalistes * * * * Copyright (C) 2008-2025 Renaud LAURETTE * * * * BIODIV a été développé initialement pour le projet Biodiv.Balma de l'APCVEB * * (Association de Protection du Cadre de Vie et de l'Environnement balmanais) * * voir Biodiv.Balma : https://balma.biodiv.fr/ * * voir APCVEB : https://apcveb.fr/ * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * * Pour plus de détails voir les fichiers COPYING.txt et LICENCE-BIODIV.md * \*******************************************************************************/ ] ::" (eg. "Blaireau::01") * et dont les valeurs sont des entiers positifs (des comptages). * Le script revoie un SVG dont la largeur fait 100% et qui s'adapte en hauteur. * * Parametres : * ENV{data} : le tableau * ENV{titre} : le titre du graphique * ENV{couleur} : la couleur de remplissage des barres */ $i=0; $data = array( "#CLE" => #VALEUR ); if(count($data) == 0) { echo "\n"; echo " [(#ENV{titre}) - ]Aucune donnée.\n"; echo "\n"; } else { $amin = $amax = $vmin = $vmax = $count =0; // Dimensionnement des axes $grid = array(); $valeurs = array(); $imois = array('J','F','M','A','M','J','J','A','S','O','N','D'); $vleg = ""; $especes = []; $count=0; foreach($data as $key => $value) { list($espece,$mois) = explode("::",$key); $especes[$espece][$mois] = $value; $valeurs[$espece] = array_key_exists($espece,$valeurs) ? $valeurs[$espece]+$value : $value; $count += $value; } krsort($especes); $da = count($especes); $height = $da*10; $yview = $height + 20; // Graphique des especes-mois echo "\n"; echo " \n"; $i=0; foreach($especes as $espece => $values) { // Initialisation des mois à white - 12 mois for($j=0; $j<12; $j++) { $grid[$i][$j] = 'white'; } $py = $i*50 +20; $ev = $valeurs[$espece]; $vleg .= "$espece ($ev)\n"; $i++; } $vleg .= "[(#ENV{titre}) - ]Total: $count observation(s)\n"; $index = 0; foreach($especes as $espece => $values) { foreach($values as $when => $value) { $mois = intval($when) -1; if($value==0) $color = 'white'; elseif($value==1) $color = '#93CA88'; elseif($value==2) $color = '#63A555'; elseif($value <5) $color = '#428733'; elseif($value <10) $color = '#276B19'; else $color = '#104805'; $grid[$index][$mois] = $color; } $index++; } for($j=0; $j<12; $j++) { $px = $j * 10; for($i=0; $i < $index; $i++) { $py = $i * 10; echo " \n"; } $tx = $j*50 + 20; echo "". $imois[$j] ."\n"; } echo $vleg; echo ""; echo "\n"; } ?>