Des graphiques paramétrables

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 450 fois - Téléchargée 29 fois

Contenu du snippet

pour faire des p'tits graphiques avec des belles barres.
pour appeler le graphique, on fait :
<img src=graph.php>

la page graph.php contient ...

Source / Exemple :


<?
// Les valeurs en abscisse (attention, incrémentez les valeurs de 1 en 1, ne passez pas de 4 à 6 par exemple, et commencez par 0)

$x[0] = "lun";
$x[1] = "mar";
$x[2] = "mer";
$x[3] = "jeu";
$x[4] = "ven";
$x[5] = "sam";
$x[6] = "dim";

// ou $x = array("lun","mar","mer","jeu","ven","sam","dim");

// Les valeurs en ordonnée (attention, incrémentez les valeurs de 1 en 1, ne passez pas de 4 à 6 par exemple, et commencez par 0)

$y[0] = 12;
$y[1] = 5;
$y[2] = 21;
$y[3] = 7;
$y[4] = 2;
$y[5] = 15;
$y[6] = 18;

// ou $y = array(12, 5, 21, 7, 2, 15, 18);

// Espace entre les barres
$barres_espace = 16;

// Largeur des barres
$barres_largeur = 8;

// Hauteur de la barre la plus grande
$barres_hauteur = 75;

// Afficher la ligne de moyenne
$afficher_moyenne = 1;

// Afficher les lignes de niveau
$afficher_lignes = 0;

// Intensité du dégradé de couleurs (entre 0 et 100, 100 = intensité maximale, 0 = intensité minimale)
$dégradé_intensité = 100;

/*

Zone de création de l'image, vous y faîtes ce que vous voulez...
Vous pouvez par exemple modifier les couleurs, etc.
À vos risques et périls (si vous êtes débutant en PHP)...

  • /
function blanc($valeur,$taille) { for($i = 1; $i < $taille; $i++) { if($valeur < pow(10,$i)) { $ligne .= " "; } } return $ligne; } $nombre = count($y); $somme = array_sum($y); $moyenne = $somme/$nombre; $maximum = max($y); $minimum = min($y); $taille = strlen($maximum); $largeur = 30+$taille*6+$barres_largeur*$nombre+$barres_espace*($nombre-0.5); $hauteur = $barres_hauteur+32; $image = imagecreate($largeur,$hauteur); $blanc = imagecolorallocate($image,255,255,255); $noir = imagecolorallocate($image,0,0,0); $couleur_niveau = imagecolorallocate($image,220,200,220); $couleur_moyenne = imagecolorallocate($image,180,180,220); imagefilledrectangle($image,0,0,$largeur,$hauteur,$blanc); imagecolortransparent($image,$blanc); if($dégradé_intensité > 100) { $dégradé_intensité = 100; } $abscisse = $taille*5+20; $dégradé = round($dégradé_intensité/$nombre); $couleur = 150; for($i = 0; $i < $nombre; $i++) { unset($ordonnée); if($maximum) { $ordonnée = $barres_hauteur+8-$y[$i]/$maximum*$barres_hauteur; } if(!$ordonnée) { $ordonnée = $barres_hauteur+8; } if($i <= $nombre/2) { $couleur -= $dégradé; } else { $couleur += $dégradé; } $barres = imagecolorallocate($image,0,0,$couleur); $ombre = imagecolorallocate($image,floor(140+$couleur/2),floor(140+$couleur/2),floor(150+$couleur/2)); imagesetpixel($image,$abscisse+2,$ordonnée-2,$ombre); imagesetpixel($image,$abscisse+2,$ordonnée-1,$ombre); imagesetpixel($image,$abscisse+1,$ordonnée-1,$ombre); imagesetpixel($image,$abscisse+$barres_largeur+2,$barres_hauteur+6,$ombre); imagesetpixel($image,$abscisse+$barres_largeur+1,$barres_hauteur+6,$ombre); imagesetpixel($image,$abscisse+$barres_largeur+1,$barres_hauteur+7,$ombre); imagefilledrectangle($image,$abscisse+3,$ordonnée-3,$abscisse+$barres_largeur+3,$barres_hauteur+5,$ombre); imagefilledrectangle($image,$abscisse,$ordonnée,$abscisse+$barres_largeur,$barres_hauteur+8,$barres); imagestring($image,2,$abscisse+$barres_largeur/2-strlen($x[$i])*2.5+1,$barres_hauteur+15,$x[$i],$noir); $abscisse += $barres_largeur+$barres_espace; } if($maximum) { imagestring($image,2,8,0,blanc($maximum,$taille).$maximum,$noir); if($maximum > 1) { if(round($maximum/2) > $maximum/2) { $valeur = floor($maximum/2); } else { $valeur = ceil($maximum/2); } imagestring($image,2,8,round($maximum/2)/$maximum*$barres_hauteur+1,blanc($valeur,$taille).$valeur,$noir); } if($maximum > 2) { if(round(3*$maximum/4) > 3*$maximum/4) { $valeur = floor($maximum/4); } else { $valeur = ceil($maximum/4); } imagestring($image,2,8,round(3*$maximum/4)/$maximum*$barres_hauteur+1,blanc($valeur,$taille).$valeur,$noir); if(round($maximum/4) > $maximum/4) { $valeur = floor(3*$maximum/4); } else { $valeur = ceil(3*$maximum/4); } imagestring($image,2,8,round($maximum/4)/$maximum*$barres_hauteur+1,blanc($valeur,$taille).$valeur,$noir); } $début = $taille*5+20; $fin = $taille*5+$barres_largeur*$nombre+$barres_espace*$nombre-$barres_espace+20; if($afficher_lignes) { if($maximum > 1) { $ordonnée = round(round($maximum/2)/$maximum*$barres_hauteur+7); imageline($image,$début,$ordonnée,$fin,$ordonnée,$couleur_niveau); } if($maximum > 2) { $ordonnée = round(round(3*$maximum/4)/$maximum*$barres_hauteur+7); imageline($image,$début,$ordonnée,$fin,$ordonnée,$couleur_niveau); $ordonnée = round(round($maximum/4)/$maximum*$barres_hauteur+7); imageline($image,$début,$ordonnée,$fin,$ordonnée,$couleur_niveau); } } if($afficher_moyenne) { $ordonnée = round($barres_hauteur-$moyenne/$maximum*$barres_hauteur+7); imageline($image,$début,$ordonnée,$fin,$ordonnée,$couleur_moyenne); } } imagestring($image,2,8,$barres_hauteur+1,blanc(0,$taille)."0",$noir); imagepng($image); imagedestroy($image); header("Content-type: image/png"); ?>

Conclusion :


avec une petite image fournie pour montrer ce que ça donne

A voir également

Ajouter un commentaire

Commentaires

tanktrasher
Messages postés
8
Date d'inscription
lundi 8 décembre 2003
Statut
Membre
Dernière intervention
10 juin 2004
-
Moi, quand je lance graph.php sur mon serveur web local j'ai un big problem :



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59

?PNG


IHDRÊkûíÑ6PLTEÿÿÿÐÐÚ?ÉÉÓzÂÂÌl»»Å^ÂÂÌlÉÉÓzÐÐÚ?ŽŽÜÜÈÜ|r¬
tRNS@æØfoIDATx?í?
s ?qÎ9çÜ.ÿÿÏîŽHÀi¬åÙÍ?ïžÊSÀ?~9g?·Å«ë±?~a?+pûYÉ ?šQ+"ì€A?×fNT?,ùB^©lÙ??+þµ*2??FLE#šì'­yŸÊn?Ý0*o?©<?¿g¬zÇ¥NEd>¬BpJŒ
*~v¿®©RqëZÆTJì?4ìReß®âçZÆÊ~?? R*ï?©`*Š"?©d'Ê€Š°j?Ë0*?aT~þU~µòoZ¥t.²O<âB\ºTâ,²K?ò?ØTL%"ñ
6Ä°÷&Gø2.b*Š1?9U'HÍzT«?Q9£ò??
ò?Uø?=«°÷3*gD«
;w_å¬^ÅUÎWÎêUPgIå1?
Tj;X*üŒ}Ï* S1?ÞUH÷*?aTÚ| Šb*Ý©ÔþîA¥ò€D*3{Æ€\¢BòD?ä?
É?'*$OTLfTh¹šBóšBóšBóšBóšBóš²dr_?? *,*,*,*,*,*?&"·hAà?{5?cb?1rϧ]QÓÊôý?i®QŒ®
?&À]Uî?×çôá$P*Iùt÷czãÿø U¢ip=¥</ïkìø}€iBׯIM?]4HWq?ÊôŽRzj=?c-0g*Y?W€N98®(®s?åY?Û?VùNNZQV%Û?¡]ZT`I%l€ŒU?;ÄV®Y«€Ã8ó?|ŒbGâ­UþÜ0ìyùí??|êsåQp?1?Ô?Žt²?IEND®B`?

C'est quoi ce truc??
tanktrasher
Messages postés
8
Date d'inscription
lundi 8 décembre 2003
Statut
Membre
Dernière intervention
10 juin 2004
-
Moi, quand je lance graph.php sur mon serveur web local j'ai un big problem :



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59

?PNG


IHDRÊkûíÑ6PLTEÿÿÿÐÐÚ?ÉÉÓzÂÂÌl»»Å^ÂÂÌlÉÉÓzÐÐÚ?ŽŽÜÜÈÜ|r¬
tRNS@æØfoIDATx?í?
s ?qÎ9çÜ.ÿÿÏîŽHÀi¬åÙÍ?ïžÊSÀ?~9g?·Å«ë±?~a?+pûYÉ ?šQ+"ì€A?×fNT?,ùB^©lÙ??+þµ*2??FLE#šì'­yŸÊn?Ý0*o?©<?¿g¬zÇ¥NEd>¬BpJŒ
*~v¿®©RqëZÆTJì?4ìReß®âçZÆÊ~?? R*ï?©`*Š"?©d'Ê€Š°j?Ë0*?aT~þU~µòoZ¥t.²O<âB\ºTâ,²K?ò?ØTL%"ñ
6Ä°÷&Gø2.b*Š1?9U'HÍzT«?Q9£ò??
ò?Uø?=«°÷3*gD«
;w_å¬^ÅUÎWÎêUPgIå1?
Tj;X*üŒ}Ï* S1?ÞUH÷*?aTÚ| Šb*Ý©ÔþîA¥ò€D*3{Æ€\¢BòD?ä?
É?'*$OTLfTh¹šBóšBóšBóšBóšBóš²dr_?? *,*,*,*,*,*?&"·hAà?{5?cb?1rϧ]QÓÊôý?i®QŒ®
?&À]Uî?×çôá$P*Iùt÷czãÿø U¢ip=¥</ïkìø}€iBׯIM?]4HWq?ÊôŽRzj=?c-0g*Y?W€N98®(®s?åY?Û?VùNNZQV%Û?¡]ZT`I%l€ŒU?;ÄV®Y«€Ã8ó?|ŒbGâ­UþÜ0ìyùí??|êsåQp?1?Ô?Žt²?IEND®B`?

C'est quoi ce truc??
tanktrasher
Messages postés
8
Date d'inscription
lundi 8 décembre 2003
Statut
Membre
Dernière intervention
10 juin 2004
-
Moi, quand je lance graph.php sur mon serveur web local j'ai un big problem :



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 63



Notice: Undefined variable: ligne in c:\program files\easyphp1-7\www\agora\stat\graph.php on line 59

?PNG


IHDRÊkûíÑ6PLTEÿÿÿÐÐÚ?ÉÉÓzÂÂÌl»»Å^ÂÂÌlÉÉÓzÐÐÚ?ŽŽÜÜÈÜ|r¬
tRNS@æØfoIDATx?í?
s ?qÎ9çÜ.ÿÿÏîŽHÀi¬åÙÍ?ïžÊSÀ?~9g?·Å«ë±?~a?+pûYÉ ?šQ+"ì€A?×fNT?,ùB^©lÙ??+þµ*2??FLE#šì'­yŸÊn?Ý0*o?©<?¿g¬zÇ¥NEd>¬BpJŒ
*~v¿®©RqëZÆTJì?4ìReß®âçZÆÊ~?? R*ï?©`*Š"?©d'Ê€Š°j?Ë0*?aT~þU~µòoZ¥t.²O<âB\ºTâ,²K?ò?ØTL%"ñ
6Ä°÷&Gø2.b*Š1?9U'HÍzT«?Q9£ò??
ò?Uø?=«°÷3*gD«
;w_å¬^ÅUÎWÎêUPgIå1?
Tj;X*üŒ}Ï* S1?ÞUH÷*?aTÚ| Šb*Ý©ÔþîA¥ò€D*3{Æ€\¢BòD?ä?
É?'*$OTLfTh¹šBóšBóšBóšBóšBóš²dr_?? *,*,*,*,*,*?&"·hAà?{5?cb?1rϧ]QÓÊôý?i®QŒ®
?&À]Uî?×çôá$P*Iùt÷czãÿø U¢ip=¥</ïkìø}€iBׯIM?]4HWq?ÊôŽRzj=?c-0g*Y?W€N98®(®s?åY?Û?VùNNZQV%Û?¡]ZT`I%l€ŒU?;ÄV®Y«€Ã8ó?|ŒbGâ­UþÜ0ìyùí??|êsåQp?1?Ô?Žt²?IEND®B`?

C'est quoi ce truc??
cs_waz
Messages postés
5
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
9 mai 2004
-
Niveau un ? Je fais du php depuis environ 1 mois et je comprend rien est ce normal ?
DRXRAY
Messages postés
39
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 avril 2006
-
Moi, je dis merci Revinc, du bon boulot, une source de qualité.
De plus facilement paramétrables. C'est assuré !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.