"#CLE" => #VALEUR ); if(count($data) == 0) { echo "\n"; echo " [(#ENV{titre}) - ]Aucune donnée.\n"; echo "\n"; } else { $amin = $amax = $vmin = $vmax = $count =0; // Mise à jour des min/max foreach($data as $key => $value) { // Extraction de l'année preg_match('/x(\d{4})/',$key,$matches); $annee = $matches[1]; $count += $value; if($i==0) { $amin = $annee; $amax = $annee; $i=1; } else { $amin = ($annee < $amin)?$annee:$amin; $amax = ($annee > $amax)?$annee:$amax; } } // Dimensionnement des axes $da = $amax - $amin +1; $height = $da*10; $yview = $height + 20; // Graphique des années-mois echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo " \n"; $grid = array(); $valeurs = array(); $imois = array('J','F','M','A','M','J','J','A','S','O','N','D'); $vleg = ""; for($i=0; $amin+$i <= $amax; $i++) { // Initialisation des mois à white - 12 mois for($j=0; $j<12; $j++) { $grid[$i][$j] = 'white'; } $valeurs[$i]=0; $py = $i*50 +20; $year = $amin+$i; $vleg .= "$year\n"; } $vleg .= "[(#ENV{titre}) - ]Total: $count observations\n"; foreach($data as $key => $value) { preg_match('/x(\d{4})-(\d{2})/',$key,$matches); $annee = $matches[1]; $mois=$matches[2]-1; $index = $annee - $amin; 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; $valeurs[$index] += $value; } // Recherche des min/max des valeurs for($i=0; $amin+$i <= $amax; $i++) { $value = $valeurs[$i]; if($i==0) { $vmin = $value; $vmax=$value; } else { $vmin = ($value < $vmin)?$value:$vmin; $vmax = ($value > $vmax)?$value:$vmax; } } // Normalisation $dv = $vmax - $vmin; if($dv > 0) { $vb = floor(log10($dv)); $ygrad = pow(10,$vb); } else { $ygrad = 1; $dv=1; } $yvmin = floor($vmin /$ygrad) * $ygrad; $cy = 0; if(($yvmin == $vmin) && ($vmin !=0)) { $yvmin = $yvmin - $ygrad; $cy = 1; } $dyv = ceil($dv /$ygrad)+1+$cy; $yvmax = $yvmin + $dyv*$ygrad; for($j=0; $j<12; $j++) { $px = $j * 10; for($i=0; $amin+$i <= $amax; $i++) { $py = $i * 10; echo " \n"; } $tx = $j*50 + 20; echo "". $imois[$j] ."\n"; } echo $vleg; echo ""; /**** Graphique des années ****/ $ys = floor(10/$dyv)*10; echo "\n"; // axes et grille echo "\n"; $ltx = $dyv * $ys; echo "\n"; echo "\n"; for($i=1; $i<=$dyv; $i++) { $ltx = $i*$ys; echo " \n"; $tx = ($ltx*5)-5; $yvg = $yvmin + ($i*$ygrad); echo " $yvg\n"; } echo " $yvmin\n"; echo "\n"; // Tracé des barres horizontales de données echo "\n"; for($i=0; $amin+$i <= $amax; $i++) { $px = $i*10 + 2; $h = $ys*($valeurs[$i] - $yvmin)/$ygrad; echo " \n"; } echo "\n"; // Tracé des quantités for($i=0; $amin+$i <= $amax; $i++) { $py = $i*50 + 20; $value = $valeurs[$i]; echo " $value\n"; } echo " "; echo "\n"; } ?>