Graphique ajouter quadrillage...
Posté : 11 juin 2005, 08:58
Bonjour,
J'aimerais creer un graphique, avec le quadrillage, les données qui s'inscrivent à gauche, en bas. et la legende.
Voici ma source du fichier
Merci à tous pour vos reponses
je suis disponible sur msn : [email protected] (egalement mon email)
J'aimerais creer un graphique, avec le quadrillage, les données qui s'inscrivent à gauche, en bas. et la legende.
Voici ma source du fichier
Code : Tout sélectionner
<?php
// On pourra supposer que les données sont lues
// dans une base de données mais dans l'immédiat
// a titre d'exemple elles sont simplement codées "en dur"
$valeurs = array(287,217,227,277,262,378,329,389,270,287,202,201,248,387,468,352,356,293,383,384,260,316,343,396,339,266,235,228,295,263,297,
371,485,337,251,282,265,231,402,483,432,565,707,663,692,674,505,471,444,516,589,696,546,492,592,567,640,534,760,566,477,483,588,915,490,433,
583,477,502);
header("Content-type: image/png");
$largeur = 600;
$hauteur = 600;
$img = imageCreate($largeur, $hauteur);
$rouge = imageColorAllocate($img, 200, 100, 100);
$noir = imageColorAllocate($img, 0, 0, 0);
$fond = imageColorAllocate($img, 240, 240, 240);
$barreCouleur = imageColorAllocate($img, 0, 255, 0);
//imagecolortransparent($im,$rouge);
$titre = "Graphique de visites de Meteociel.com Avril-Juin2005 ";
$titrePolice = 5;
imageString($img, $titrePolice,
($largeur-ImageFontWidth($titrePolice)*strlen($titre))/2,
0, $titre, $noir);
//imageTTFText($im, 15, 90, $largeur-10, $hauteur-10, $noir, "Gigi.ttf",
// "Copyright PHP Facile !");
// Tracé du fond de l'histogramme
imageFilledRectangle($img, 10, 20, $largeur-25, $hauteur-10, $fond);
// Connaissant le nombre de barres = sizeOf($valeurs)
// et la largeur de l'image (en tenant compte des bords)
// il est possible de déterminer la largeur d'une barre
$barreLargeur = (int)(($largeur-35)/(1.5*sizeOf($valeurs)+0.5));
// Pour ajuster l'échelle (en hauteur) il faut déterminer
// la plus grande valeur du tableau
$max = 0;
for ($i=0; $i<sizeOf($valeurs); $i++) {
if ($valeurs[$i]>$max) $max = $valeurs[$i];
}
// Nous avons toutes les informations nécessaire
// il est alors possible de tracer toutes les barres
for ($i=0; $i<sizeOf($valeurs); $i++) {
$x = 10+(int)($barreLargeur*(0.5+$i*1.5));
$barreHauteur = (int)(($valeurs[$i]*($hauteur-40))/$max);
imageFilledRectangle($img, $x,
$hauteur-15-$barreHauteur,
$x+$barreLargeur,
$hauteur-15,
$barreCouleur);
}
imagePNG($img);
imageDestroy($img);
?>
je suis disponible sur msn : [email protected] (egalement mon email)