Ce code vous permet de générer dynamiquement un graphique Camembert en 2D.
Vous devez disposer de la librairie GD pour l'utiliser.
Problème commentaire : J'ai résolu le problème en remplaçant
'IMG_ARC_NOFILL IMG_ARC_EDGED'
par
IMG_ARC_PIE J'espère que ça pourra être utile à d'autres qui pourraient avoir le même problème.
Pour l'exemple j'ai utilisé 2 polices TTF : HypatiaSansPro (Fournis par Adobe), et Verdana (police inclus dans Windows).
Pensez a modifier les polices pour essayer ce code (lignes 81/82/83)
Cette fonction a beaucoup d'options, mais j'ai pu en oublié, je reste ouvert a toute proposition.
[25/06/2009] Correction : Le graphique ne pouvais etre generer si vous aviez choisis l'autoVal, et qu'une (ou plusieurs) de vos valeurs vallait moins de 0.1239 %. Pour resoudre le probléme, modifier la boucle autoVal (Voir mention EDIT dans le code).
Voici la description pour l'utilisation de ce code.
bool Camembert( array $value [, bool $autoVal [, bool $legend [, bool $legendVal [, string $title [, array $key [, int $width [, int $height [, int $marge_x [, int $marge_y [, int $width_legend ]]]]]]]]]] )
value:
array - Tableau des valeurs a grapher.
autoVal:
bool - Si autoVal vaut TRUE, les valeurs en pourcentage sont calculées automatiquement. Sinon la somme des valeurs de $value doivent etre egale a 100.
legend:
bool - Si legend vaut TRUE, les legendes seront affichée a droite du camembert. Sinon les legendes ne seront pas affichée.
legendVal:
bool - Si legendVal vaut TRUE, les valeurs en % apparaitront avec le texte de la legende.
title:
string - Si title est defini, celui-ci apparaitra au dessus de la legende.
key:
array - Tableau contenu le titre de valeur.
width:
int - Defini la largeur du camembert. Vaut 300 px par défaut.
height:
int - Defini la hauteur du camembert. Vaut 300 px par défaut.
marge_x:
int - Defini la marge a appliquer a gauche du camembert. Vaut 20 px par défaut.
marge_y:
int - Defini la marge a appliquer en haut du camembert. Vaut 20 px par défaut.
width_legend:
int - Defini la largeur du bandeau contenant la legende.
|
| Détail | php.net | Description |
Versions PHP |
|---|---|---|---|
| array | Crée un tableau |
PHP 4, 5, 7 et 8 | |
| count | Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet |
PHP 4, 5, 7 et 8 | |
| echo | Affiche une chaîne de caractères |
PHP 4, 5, 7 et 8 | |
| header | Envoie un entête HTTP |
PHP 4, 5, 7 et 8 | |
| imagecolorallocate | Alloue une couleur pour une image |
PHP 4, 5, 7 et 8 | |
| imagecopyresized | Copie et redimensionne une partie d'une image |
PHP 4, 5, 7 et 8 | |
| imagecreatetruecolor | Crée une nouvelle image en couleurs vraies (PHP 4 >= 4.0.6, PHP 5, PHP 7) |
PHP 4, 5, 7 et 8 | |
| imagedestroy | Détruit une image |
PHP 4, 5, 7 et 8 | |
| imagefilledarc | Dessine une ellipse partielle et la remplit (PHP 4 >= 4.0.6, PHP 5, PHP 7) |
PHP 4, 5, 7 et 8 | |
| imagefilledellipse | Dessine une ellipse pleine (PHP 4 >= 4.0.6, PHP 5, PHP 7) |
PHP 4, 5, 7 et 8 | |
| imagefilledrectangle | Dessine un rectangle rempli |
PHP 4, 5, 7 et 8 | |
| imagepng | Envoie une image PNG vers un navigateur ou un fichier |
PHP 4, 5, 7 et 8 | |
| imagerectangle | Dessine un rectangle |
PHP 4, 5, 7 et 8 | |
| imagettfbbox | Retourne le rectangle entourant un texte et dessiné avec une police TrueType |
PHP 4, 5, 7 et 8 | |
| imagettftext | Dessine un texte avec une police TrueType |
PHP 4, 5, 7 et 8 | |
| realpath | Retourne le chemin canonique absolu |
PHP 4, 5, 7 et 8 | |
| return | Retourne le controle du programme au module appelant. |
PHP 4, 5, 7 et 8 | |
| round | Arrondi un nombre à virgule flottante |
PHP 4, 5, 7 et 8 | |
Invité
30 Aout 2010 à 23:28Merci pour cette page très utile ! Juste une suggestion : depuis quelques temps, imagefilledarc ne fonctionnait plus du tout, et je me retrouvais avec un camembert complètement noir. J'ai résolu le problème en remplaçant
'IMG_ARC_NOFILL IMG_ARC_EDGED'
par
IMG_ARC_PIE J'espère que ça pourra être utile à d'autres qui pourraient avoir le même problème.