|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
STATISTIQUE GRAPHIQUE (COMPOSANT ARTICHOW)
Information sur la source
Description
Une librairie très intéressante pour les statistiques: http://www.artichow.org Mais je n'ai rien trouvé de "prêt à l'emploi" pour cette librairie, donc je m'y suis mis, pour l'instant je ne gère que les camemberts et les courbes mais il est très simple d'étendre le système aux autres types de graphique (dès que je le fais je mettrais à jour la source). Normalement il vous suffit de mettre l'include et vous pouvez créer un graphique avec preload en quelques lignes de code !!! Dans les exemples les tableaux de données sont en dur mais ils peuvent très bien provenir d'une base de données !! Attention le dossier 'cache' situé dans le dossier 'artichow-1.1.0' doit avoir les droits d'écriture (c'est la que les png sont générés) Certains vont dire que ma source est pas propre, que j'aurais du faire de l'objet, du PHP5 etc...etc... en fait j'ai fais ce que j'ai pu avec ce que j'avais (limité à PHP 4.3) par contre je prends toutes les critiques constructives et les propositions d'amélioration !
Source
- <?php
- session_start();
- ?>
- <html>
- <head>
- <title>Exemple MyArtiChow</title>
- </head>
- <body>
- <a href="index2.php">Version sans anti-alias</a>
- <?php
- // Permet de lancer un traitement lorsque toutes les images sont chargées...
- $checkStatImagesOnAllComplete = 'alert("Toutes les images sont chargées !");';
-
- // Include avec toutes mes fonctions qui vont bien...
- include('artichow-1.1.0/statistiques_include.php');
-
-
- /****************************************************** LES CAMEMBERTS *****************************************************/
-
- /********* EXEMPLE 1 (simple) **********/
-
- // Titre du camembert
- $title = "EXEMPLE 1 (simple) :";
-
- // Largeur du camembert
- $width = 750;
-
- // Hauteur du camembert
- $height = 400;
-
- // Tableau des légendes
- $legend = array('Titi','Toto','Tata','Les autres');
-
- // Tabeau des valeurs
- $data = array(38,28,7,37);
-
- // On crée l'image
- insertStatImage(1,$width,$height,$title,$legend,$data,'');
-
- echo'</br></br>';
-
-
-
-
- /********* EXEMPLE 2 (mise en forme des légendes) **********/
-
- // Titre du camembert
- $title = "EXEMPLE 2 (mise en forme des légendes) :";
-
- // Largeur du camembert
- $width = 750;
-
- // Hauteur du camembert
- $height = 400;
-
- // Tableau des légendes
- $legend = array('ABCDEF','GHIJKL','MNOPQRS','TUVWXYZ');
-
- // Tabeau des valeurs
- $data = array(110,25,86,42);
-
- // On met en forme les légendes
- foreach($legend as $key => $value){
- if(strlen($value)>30){
- $lbl = substr($value,0,27).'...';
- }
- else{
- $lbl = str_pad($value,30,'.');
- }
- $legends[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
- $datas[] = $data[$key];
- }
-
- // On crée l'image
- insertStatImage(1,$width,$height,$title,$legends,$datas,'');
-
- echo'</br></br>';
-
-
-
-
- /********* EXEMPLE 3 (tri par ordre décroissant) **********/
-
- // Titre du camembert
- $title = "EXEMPLE 3 (tri par ordre décroissant) :";
-
- // Largeur du camembert
- $width = 750;
-
- // Hauteur du camembert
- $height = 400;
-
- // Tableau des légendes
- $legend = array('Titi','Toto','Tata','Les autres');
-
- // Tabeau des valeurs
- $data = array(16,25,2,34);
-
- // Tri par ordre décroissant
- array_multisort($data, SORT_DESC, $legend, SORT_ASC);
-
- // On crée l'image
- insertStatImage(1,$width,$height,$title,$legend,$data,'');
-
- echo'</br></br>';
-
-
-
-
-
- /********* EXEMPLE 4 (couleurs personnalisées) **********/
-
- // Titre du camembert
- $title = "EXEMPLE 4 (couleurs personnalisées) :";
-
- // Largeur du camembert
- $width = 750;
-
- // Hauteur du camembert
- $height = 400;
-
- // Tableau des légendes
- $legend = array('Titi','Toto','Tata','Les autres');
-
- // Tabeau des valeurs
- $data = array(16,25,2,34);
-
- // Tabeau des couleurs
- $color = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');
-
- // On met en forme les légendes
- foreach($legend as $key => $value){
- if(strlen($value)>30){
- $lbl = substr($value,0,27).'...';
- }
- else{
- $lbl = str_pad($value,30,'.');
- }
- $legends2[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
- $datas2[] = $data[$key];
- $colors2[] = $color[$key];
- }
-
- // Tri par ordre décroissant
- array_multisort($datas2, SORT_DESC, $legends2, SORT_ASC, $colors2);
-
- // On crée l'image
- insertStatImage(1,$width,$height,$title,$legends2,$datas2,$colors2);
-
- echo'</br></br>';
-
-
-
-
-
- /********* EXEMPLE 5 (on passe une seule couleur et il s'occupe du dégradé) **********/
-
- // Titre du camembert
- $title = "EXEMPLE 5 (dégradé de couleurs) :";
-
- // Largeur du camembert
- $width = 750;
-
- // Hauteur du camembert
- $height = 400;
-
- // Tableau des légendes
- $legend = array('Titi','Toto','Tata','Les autres');
-
- // Tabeau des valeurs
- $data = array(38,28,7,37);
-
- // On met en forme les légendes
- foreach($legend as $key => $value){
- if(strlen($value)>30){
- $lbl = substr($value,0,27).'...';
- }
- else{
- $lbl = str_pad($value,30,'.');
- }
- $legends3[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
- $datas3[] = $data[$key];
- }
-
- // Tabeau des couleurs (on passe la couleur de base, il va créer un dégradé)
- $color = array('#5C69AA');
-
- // Tri par ordre décroissant
- array_multisort($datas3, SORT_DESC, $legends3, SORT_ASC);
-
- // On crée l'image
- insertStatImage(1,$width,$height,$title,$legends3,$datas3,$color);
-
- echo'</br></br>';
-
-
-
-
-
- /****************************************************** LES COURBES *****************************************************/
-
-
- /********* EXEMPLE 1 (Courbe simple...) **********/
-
- // Tableau des légendes
- $legend = array('Titi','Toto');
-
- // Tabeau des valeurs
- $data2[] = array(5,11,10,8,12,0);
- $data2[] = array(30,25,28,29,34,25);
-
- // Tabeau des couleurs
- $color2 = array('#5C69AA','#DF6C6C');
-
- $title = " EXEMPLE 1 (Courbe simple...)";
- $width = 750;
- $height = 500;
-
- insertStatImage(2,$width,$height,$title,$legend,$data2,$color2);
-
- echo'</br></br>';
-
-
-
- /********* EXEMPLE 2 (Des belles courbes...) **********/
-
- // Tableau des légendes
- $legend = array('Titi','Toto','Tata','Les autres');
- // Mise en forme des légendes
- foreach($legend as $key => $value){
- if(strlen($value)>15){
- $lbl = substr($value,0,14).'.';
- }
- else{
- $lbl = str_pad($value, 15 , ' ');
- }
- $legend[$key] = $lbl;
- }
-
- // Tabeau des valeurs
- $data3[] = array(0,9,8,0,5,15);
- $data3[] = array(12,16,18,25,28,20);
- $data3[] = array(5,11,10,8,12,0);
- $data3[] = array(30,25,28,29,34,25);
-
- // Tabeau des couleurs
- $color3 = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');
-
- // Tableau des libelles de l'axe des abcisses
- $lblAbs = array('01/2008','02/2008','03/2008','04/2008','05/2008','06/2008');
-
- $title = " EXEMPLE 2 (Des belles courbes...)";
- $width = 750;
- $height = 500;
-
- insertStatImage(2,$width,$height,$title,$legend,$data3,$color3,$lblAbs);
-
- echo'</br></br>';
-
- ?>
- </body>
- </html>
<?php
session_start();
?>
<html>
<head>
<title>Exemple MyArtiChow</title>
</head>
<body>
<a href="index2.php">Version sans anti-alias</a>
<?php
// Permet de lancer un traitement lorsque toutes les images sont chargées...
$checkStatImagesOnAllComplete = 'alert("Toutes les images sont chargées !");';
// Include avec toutes mes fonctions qui vont bien...
include('artichow-1.1.0/statistiques_include.php');
/****************************************************** LES CAMEMBERTS *****************************************************/
/********* EXEMPLE 1 (simple) **********/
// Titre du camembert
$title = "EXEMPLE 1 (simple) :";
// Largeur du camembert
$width = 750;
// Hauteur du camembert
$height = 400;
// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Tabeau des valeurs
$data = array(38,28,7,37);
// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data,'');
echo'</br></br>';
/********* EXEMPLE 2 (mise en forme des légendes) **********/
// Titre du camembert
$title = "EXEMPLE 2 (mise en forme des légendes) :";
// Largeur du camembert
$width = 750;
// Hauteur du camembert
$height = 400;
// Tableau des légendes
$legend = array('ABCDEF','GHIJKL','MNOPQRS','TUVWXYZ');
// Tabeau des valeurs
$data = array(110,25,86,42);
// On met en forme les légendes
foreach($legend as $key => $value){
if(strlen($value)>30){
$lbl = substr($value,0,27).'...';
}
else{
$lbl = str_pad($value,30,'.');
}
$legends[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
$datas[] = $data[$key];
}
// On crée l'image
insertStatImage(1,$width,$height,$title,$legends,$datas,'');
echo'</br></br>';
/********* EXEMPLE 3 (tri par ordre décroissant) **********/
// Titre du camembert
$title = "EXEMPLE 3 (tri par ordre décroissant) :";
// Largeur du camembert
$width = 750;
// Hauteur du camembert
$height = 400;
// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Tabeau des valeurs
$data = array(16,25,2,34);
// Tri par ordre décroissant
array_multisort($data, SORT_DESC, $legend, SORT_ASC);
// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data,'');
echo'</br></br>';
/********* EXEMPLE 4 (couleurs personnalisées) **********/
// Titre du camembert
$title = "EXEMPLE 4 (couleurs personnalisées) :";
// Largeur du camembert
$width = 750;
// Hauteur du camembert
$height = 400;
// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Tabeau des valeurs
$data = array(16,25,2,34);
// Tabeau des couleurs
$color = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');
// On met en forme les légendes
foreach($legend as $key => $value){
if(strlen($value)>30){
$lbl = substr($value,0,27).'...';
}
else{
$lbl = str_pad($value,30,'.');
}
$legends2[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
$datas2[] = $data[$key];
$colors2[] = $color[$key];
}
// Tri par ordre décroissant
array_multisort($datas2, SORT_DESC, $legends2, SORT_ASC, $colors2);
// On crée l'image
insertStatImage(1,$width,$height,$title,$legends2,$datas2,$colors2);
echo'</br></br>';
/********* EXEMPLE 5 (on passe une seule couleur et il s'occupe du dégradé) **********/
// Titre du camembert
$title = "EXEMPLE 5 (dégradé de couleurs) :";
// Largeur du camembert
$width = 750;
// Hauteur du camembert
$height = 400;
// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Tabeau des valeurs
$data = array(38,28,7,37);
// On met en forme les légendes
foreach($legend as $key => $value){
if(strlen($value)>30){
$lbl = substr($value,0,27).'...';
}
else{
$lbl = str_pad($value,30,'.');
}
$legends3[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
$datas3[] = $data[$key];
}
// Tabeau des couleurs (on passe la couleur de base, il va créer un dégradé)
$color = array('#5C69AA');
// Tri par ordre décroissant
array_multisort($datas3, SORT_DESC, $legends3, SORT_ASC);
// On crée l'image
insertStatImage(1,$width,$height,$title,$legends3,$datas3,$color);
echo'</br></br>';
/****************************************************** LES COURBES *****************************************************/
/********* EXEMPLE 1 (Courbe simple...) **********/
// Tableau des légendes
$legend = array('Titi','Toto');
// Tabeau des valeurs
$data2[] = array(5,11,10,8,12,0);
$data2[] = array(30,25,28,29,34,25);
// Tabeau des couleurs
$color2 = array('#5C69AA','#DF6C6C');
$title = " EXEMPLE 1 (Courbe simple...)";
$width = 750;
$height = 500;
insertStatImage(2,$width,$height,$title,$legend,$data2,$color2);
echo'</br></br>';
/********* EXEMPLE 2 (Des belles courbes...) **********/
// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Mise en forme des légendes
foreach($legend as $key => $value){
if(strlen($value)>15){
$lbl = substr($value,0,14).'.';
}
else{
$lbl = str_pad($value, 15 , ' ');
}
$legend[$key] = $lbl;
}
// Tabeau des valeurs
$data3[] = array(0,9,8,0,5,15);
$data3[] = array(12,16,18,25,28,20);
$data3[] = array(5,11,10,8,12,0);
$data3[] = array(30,25,28,29,34,25);
// Tabeau des couleurs
$color3 = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');
// Tableau des libelles de l'axe des abcisses
$lblAbs = array('01/2008','02/2008','03/2008','04/2008','05/2008','06/2008');
$title = " EXEMPLE 2 (Des belles courbes...)";
$width = 750;
$height = 500;
insertStatImage(2,$width,$height,$title,$legend,$data3,$color3,$lblAbs);
echo'</br></br>';
?>
</body>
</html>
Conclusion
Attention le dossier 'cache' situé dans le dossier 'artichow-1.1.0' doit avoir les droits d'écriture (c'est la que les png sont générés) Tout est dans le zip !
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 07 juillet 2008 18:42:00 :
- Ajout des courbes.
Amélioration du preload.
Possibilité de passer une seule couleur lors de la création d'un camembert, les autres seront générées en dégradé.
- 07 juillet 2008 18:45:19 :
- Mise à jour de la capture
- 07 juillet 2008 18:45:57 :
- Mise à jour de la capture
- 07 juillet 2008 18:48:14 :
- Mise à jour de la capture
- 10 juillet 2008 11:52:00 :
- Création d'un numéro de version pour mieux m'y repérer (je suis passé direct à la v2 !!!)
Amélioration du code généré, du preload (encore !)
Modification du système de génération des images, l'ancien système (envoi direct des images par le fichier php) ne permettait pas d'utiliser les fonctionnalités du clic droit sur une image (sous IE) et ne permettait pas d'imprimer la page (une image d'erreur rouge apparaissait à la place des graphiques).
Le nouveau système autorise toutes les fonctionnalités du clic droit : enregistrer l'image, envoyer par email, imprimer l'image, et même copier l'image puis coller dans word, excel, powerpoint etc...
Ajout de la possibilité de lancer des commandes javascript une fois toutes les images chargées (je m'en sert par exemple pour lancer l'impression afin de ne pas imprimer les image 'en cours de chargement'...)
Attention le dossier 'cache' situé dans le dossier 'artichow-1.1.0' doit avoir les droits d'écriture (c'est la que les png sont générés)
- 11 juillet 2008 10:07:26 :
- Il ne faut pas remettre à demain ce que l'on peut faire le jour même !!! ajout de l'option pour désactiver l'antialias lors de l'appel de la fonction insertStatImage, et effectivement les images sont beaucoup moins longues à générer !!! (voir exemple de camembert N°1)
insertStatImage($imageType,$width,$height,$title,$legend,$data,$color,$lblAbs=NULL,$antiAlias=TRUE)
- 11 juillet 2008 11:01:54 :
- Mise à jour du zip qui contient maintenant 2 fichiers d'exemple, un avec antialias et un sans !! cela permet de faire des tests de performance et chez moi sans antialias la page met environ 4 a 5 secondes à se charger et avec antialias c'est plutôt 14 a 15 secondes !!! dans mes formulaires qui génèrent des graphiques je laisse maintenant le choix à l'utilisateur entre qualité 'standard' et qualité 'haute' ....
- 17 juillet 2008 12:03:02 :
- J'ai simplement refait le zip en vidant le dossier cache qui contenait tout mes tests !!!
- 17 juillet 2008 12:13:05 :
- Ben finalement j'ai remis les quelques fichiers de l'exemple dans le dossier cache sinon QuickZip ne prend carrément pas le dossier cache !!....
- 06 août 2008 14:17:27 :
- Correction d'une erreur de libellé....
- 07 août 2008 12:50:14 :
- Création d'un nouvel exemple avec la fonction de dégradé de couleurs (on ne passe que la couleur de base et les autres sont calculées...)
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Statistique graphique, pourquoi ne parler que de JPgraph ? [ par crazygogo ]
Pourquoi JPGRAPH ??? payant pour les sociétés.... alors qu'il existe ArtiChow : http://www.artichow.orgje fais de la pub pour ma source mais elle perm
Base de données et courbe graphique [ par jeremy77 ]
Bonjour,Je suis débutant en php ... .Savez-vous si est possible de ce servire d'une table venant d'une base de données comme coordonées pour une courb
graphique en courbe avec liaison mysql [ par jeremy77 ]
Bonjour a tous,(Je suis débutant en php)Dans le cadre de réaliser une chart boursier en php, j'ai reussi a faire apparaitre un graphique en courbe a l
graphique et base de données [ par jeremy77 ]
Bonjour,Apres avoir réalisé un graphique en courbe avec liaison a ma base de donnes (c'est à dire que les coordonées de ma courbe sont des valeurs réc
Générer une palette graphique [ par bthivent ]
Bonjour j'aimerai savoir comment générer une palette graphique, automatiquement, avec le plus de couleurs possible, et que l'ont puisse cliquer dessus
Affichage de graphique [ par nbenoist ]
sur RedHat 7.2 J'ai une page php qui lit un fichier de log. Ma page php me affiche 2 camenbert suivant les informations du fichier log. J'ai mis les
Probleme vraiment bizzard [ par papipsycho ]
bonjour voila je vous enonce mon probleme dans mon kit graphique je mais un <form name=form_login ect...> et bien quand je le mais s
diagramme camembert [ par emma1006 ]
Bonjour,J'ai trouvé un super code source sur le site :http://www.metacites.net/article132.htmlil correspond vraiment à ce que je voudrais fa
librairie graphique [ par bm67 ]
Je travaille avec easyphp1.7 Lorsque je cherche à créer un rectangle.Voilà ce que j'obtiens. Les fonctions employées sont activ
graphique dynamique php [ par coolboarder ]
Bonjour,je souhaite créer un graphique en php qui se génère automatiquement d'après les données d'une bd.Les donnée
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC G1
Entre 449€ et 449€
|