/** * Calculer la moyenne glissante sur un nombre d'echantillons donnes * * @param int|bool $valeur * @param int $glisse * @return float */ function moyenne_glissante($valeur = false, $glisse = 0) { static $v = array(); // pas d'argument, raz de la moyenne if ($valeur === false) { $v = array(); return 0; } // argument, on l'ajoute au tableau... // surplus, on enleve... $v[] = $valeur; if (count($v) > $glisse) { array_shift($v); } return round(statistiques_moyenne($v), 2); }
function statistiques_par_mois($entrees, $script){ $maxgraph = maxgraph(max($entrees)); $rapport = 200/$maxgraph; $largeur = floor(420 / (count($entrees))); if ($largeur < 1) $largeur = 1; if ($largeur > 50) $largeur = 50; $decal = 0; $tab_moyenne = array(); $all = ''; foreach($entrees as $key=>$value) { $key = substr($key,0,4).'-'.substr($key,4,2); $mois = affdate_mois_annee($key); if ($decal == 30) $decal = 0; $decal ++; $tab_moyenne[$decal] = $value; $moyenne = statistiques_moyenne($tab_moyenne); $hauteur_moyenne = round($moyenne * $rapport) - 1; $hauteur = round($value * $rapport) - 1; $res = ''; $title= attribut_html(supprimer_tags("$mois | " ._T('info_total')." ".$value)); $tagtitle = $script ? '' : $title; if ($hauteur > 0){ if ($hauteur_moyenne > $hauteur) { $difference = ($hauteur_moyenne - $hauteur) -1; $res .= http_img_rien($largeur, 1, 'trait_moyen'); $res .= http_img_rien($largeur, $difference, '', $tagtitle); $res .= http_img_rien($largeur,1,"trait_haut"); if (preg_match(",-01,",$key)){ // janvier en couleur foncee $res .= http_img_rien($largeur,$hauteur,"couleur_janvier", $tagtitle); } else { $res .= http_img_rien($largeur,$hauteur,"couleur_mois", $tagtitle); } } else if ($hauteur_moyenne < $hauteur) { $difference = ($hauteur - $hauteur_moyenne) -1; $res .= http_img_rien($largeur,1,"trait_haut", $tagtitle); if (preg_match(",-01,",$key)){ // janvier en couleur foncee $couleur = 'couleur_janvier'; } else { $couleur = 'couleur_mois'; } $res .= http_img_rien($largeur,$difference, $couleur, $tagtitle); $res .= http_img_rien($largeur,1,'trait_moyen',$tagtitle); $res .= http_img_rien($largeur,$hauteur_moyenne, $couleur, $tagtitle); } else { $res .= http_img_rien($largeur,1,"trait_haut", $tagtitle); if (preg_match(",-01,",$key)){ // janvier en couleur foncee $res .= http_img_rien($largeur, $hauteur, "couleur_janvier", $tagtitle); } else { $res .= http_img_rien($largeur,$hauteur, "couleur_mois", $tagtitle); } } } $res .= http_img_rien($largeur,1,'trait_bas', $tagtitle); if (!$script) { $y = annee($key); $m = mois($key); $href = generer_url_ecrire('calendrier', "type=mois&annee=$y&mois=$m&jour=1"); } else $href = "$script&date=$key"; $all .= "\n<td style='width: ${largeur}px'><a href='" . $href . '\' title="' . $title . '">' . $res . "</a></td>\n"; } return "\n<table cellpadding='0' cellspacing='0' border='0'><tr>" . "\n<td ".http_style_background("fond-stats.gif").">" . "\n<table cellpadding='0' cellspacing='0' border='0' class='bottom'><tr>" . "\n<td class='trait_bas'>" . http_img_rien(1, 200) ."</td>" . $all . "\n<td style='background-color: black'>" . http_img_rien(1, 1) . "</td>" . "</tr></table></td>" . "\n<td ".http_style_background("fond-stats.gif")." valign='bottom'>" . http_img_rien(3, 1, 'trait_bas') ."</td>" . "\n<td>" . http_img_rien(5, 1) ."</td>" . "\n<td valign='top'>" . statistiques_echelle($maxgraph) . "</td></tr></table>"; }