Beispiel #1
0
function CreeGraphClassementZoom($fichier)
{
    // Initialement, ces variables étaient passés dans la session
    // $G_listeJeux=$_SESSION['G_listeJeuxZoom'];
    // $G_listeJoueurs=$_SESSION['G_listeJoueursZoom'];
    // $G_listeResultats=$_SESSION['G_listeResultatsZoom'];
    // $G_MesCouleurs=$_SESSION['G_mesCouleurs'];
    global $G_ListeJeuxZoom;
    global $G_MesCouleurs;
    global $G_ListeResultatsMoyensZoom;
    global $G_ListeJoueurs;
    // Le niveau de transparence est définit à 95%
    // Ici, le graphique mesurera 620 x 700 pixels.
    $graph = new Graph(620, 700);
    // L'anti-aliasing permet d'afficher des courbes plus naturelles,
    // mais cette option consomme beaucoup de ressources sur le serveur.
    $graph->setAntiAliasing(TRUE);
    // Titre du graphe !
    $graph->title->set("Zoom sur les quatre dernières moyennes");
    // L'objet group permet de gérer plusieurs courbes sur un même grpahiques
    $group = new PlotGroup();
    // Le style des lignes des courbes est dashed
    $group->grid->setType(LINE_DASHED);
    // La marge gauche est fixée à 40px du bord, droite à 20, haut à 40px et basse à 120px
    $group->setPadding(40, 20, 40, 120);
    // Le titre sur les absisses est : % Réussite
    $group->axis->left->title->set("% Reussite");
    $group->setYAxisZero(false);
    // Les libellés sur les absisses sont inclinés de 45%
    $group->axis->bottom->label->setAngle(45);
    // Affiche 10 marques entre 2 marques majeures
    $group->axis->left->setNumberByTick('minor', 'major', 10);
    // Titre des ordonnées
    //$group->axis->bottom->title->set("Journées");
    // La légende est affiché en bas du graphe
    $group->legend->setModel(LEGEND_MODEL_BOTTOM);
    // Position de la légénde par rapport au graphe
    $group->legend->setPosition(NULL, 0.9);
    // Nb de colonnes
    $group->legend->setRows(2);
    //$group->legend->shadow->hide();
    // On créé autant de courbes qu'il y a de joueurs !
    for ($j = 0; $j < sizeof($G_ListeJoueurs); $j++) {
        // Recherche des résultats du joueur $j
        $G_ResultatJoueur = array();
        for ($k = 0; $k < sizeof($G_ListeJeuxZoom); $k++) {
            if (isset($G_ListeResultatsMoyensZoom[$k][$j])) {
                $G_ResultatJoueur[$k] = $G_ListeResultatsMoyensZoom[$k][$j];
            } else {
                $G_ResultatJoueur[$k] = null;
            }
        }
        // Création d'une courbe pour ce joueur
        $plot = new LinePlot($G_ResultatJoueur);
        $plot->setColor(new Color($G_MesCouleurs[$j][0], $G_MesCouleurs[$j][1], $G_MesCouleurs[$j][2]));
        $plot->setFillColor(new Color($G_MesCouleurs[$j][0], $G_MesCouleurs[$j][1], $G_MesCouleurs[$j][2], NIVEAU_TRANSPARENCE));
        $plot->mark->setType(MARK_CIRCLE);
        if ($j % 3 == 0) {
            $plot->mark->setType(MARK_TRIANGLE);
        }
        if ($j % 4 == 0) {
            $plot->mark->setType(MARK_CROSS);
        }
        $plot->mark->setFill(new Color($G_MesCouleurs[$j][0], $G_MesCouleurs[$j][1], $G_MesCouleurs[$j][2]));
        $plot->mark->setSize(7);
        $plot->yAxis->setLabelNumber(0.5);
        // $plot->xAxis->label->setAngle(45);
        $plot->setPadding(10, 10, 10, 10);
        // Ajoute d'une légende pour cette courbe et ce joueur
        $group->legend->add($plot, $G_ListeJoueurs[$j], LEGEND_MARK);
        // Ajoute cette courbe au group
        $group->add($plot);
    }
    // Fonction qui retourne les Abscisses
    function setAbscisseZoom($value)
    {
        global $G_ListeJeuxZoom;
        return $G_ListeJeuxZoom[$value];
    }
    $group->axis->bottom->label->setCallbackFunction('setAbscisseZoom');
    // Fonction qui retourne les Ordonnés
    function setOrdonneZoom($value)
    {
        return round($value);
    }
    $group->axis->left->label->setCallbackFunction('setOrdonneZoom');
    // Ajout de ce groupe au graphique
    $graph->add($group);
    $graph->draw($fichier);
}