Bibliothèque graphique : Artichow  

Artichow est une bibliothèque qui permet de créer simplement des graphiques avec PHP et GD. Elle évolue régulièrement avec de nouvelles possibilités.

Artichow est une alternative du point graphique par rapport aux applications déjà existante, et sous licence Domaine Public

L'article a été réalisé avec la version 1.10 de Artichow qui fonctionne avec les versions 4 et 5 du PHP.

Introduction

Les possibilitées d'artichow sont nombreuses et évoluent régulièrement :

  • Les réalisations graphiques : les courbes, les histogrammes, les camemberts, Les graphiques libres, Les fonctions mathématiques, Les images anti-spam, Dessin libre...
  • Les couleurs : Des dégradés, gestion de transparence, couleurs pleine, relief
  • Gère l'antialiasing
  • Incorporation de légendes
Artichow

Installation

Dans un premier temps vous devez télécharger la bibliothèque à l'adresse suivante : http://www.artichow.org/download

Pour pouvoir executer et visualiser les exemples qui sont fournis, vous devez :

  • Activer la GD (php_gd2.dll dans votre php.ini sous windows)
  • Retenir le dossier PHP4 ou PHP5, suivant la version du PHP que vous utilisez. Ces dossiers contiennent les bibliothèques nécessaire pour faire fonctionner correctement l'application

Afficher une image dynamique

Un fichier PHP qui genère une image est équivalent à une image du point de vue de votre navigateur (firefox, ie, opéra,...). Il n'est donc pas possible dans un fichier PHP qui genère une image d'afficher du texte en dessous.

On fait donc générallement appel au fichier PHP qui genère une image de la façon suivante :

Fichier index.htm
  1. <head></head>
  2.   <img src="ex1.php" border=0 width=400 height=300>
  3. </body>

Nous allons étudier comment faire une courbe graphique avec des données et une légende.

Fichier ex1.php
  1. <?php
  2. require_once "LinePlot.class.php"// appel de la librairie des Lignes
  3. $yvalues = array(10, 14, 53, 25, 33,12,60,55,40,32,26);
  4.  
  5. $graph = new Graph(400,300);            // creation de l'objet Graph
  6. $plot = new LinePlot($yvalues);            // creation du tracé et son type
  7.  
  8. $plot->setSpace(5, 5, 10, NULL);    // on insere un peu d'espace par rapport à la bordure
  9.  
  10. $plot->title->set("Titre");         // titre pour le Graph
  11. $plot->title->setFont(new TuffyBold(12))// Police et taille de caractere
  12.  
  13. $plot->xAxis->title->set("Période");//legende en X
  14. $plot->xAxis->title->setFont(new TuffyBold(10))// Police et taille de caractere
  15.  
  16. $plot->yAxis->title->set("Nombre"); // legende en Y
  17. $plot->yAxis->title->setFont(new TuffyBold(10));        // Police et taille de caractere
  18.  
  19. $graph->add($plot);                    // ajoute le tracé
  20. $graph->draw();                            // On affiche le graphique
  21. ?>
Premier graphique avec artichow

 

Analyse par Camembert

L'exemple suivant permet de varier les présentations en proposant quelque chose de différents de ce qui peut etre vue dans la majorité des statistiques pouvant exister.

Fichier ex2.php
  1. <?php
  2. require_once "Pie.class.php"// appel de la librairie des cercles
  3.  
  4. $graph = new Graph(400, 250)// creation de l'objet Graph
  5. $graph->setAntiAliasing(TRUE)//active l'Anti Alias pour faire plus jolie
  6.  
  7. $values = array(8, 4, 6, 2, 5, 3, 4)// quelques valeurs qui seront converti en %
  8. $legende = array('Lun','Mar','Mer','Jeu','Ven','Sam', 'Dim');        // valeurs des légendes
  9.  
  10. $plot = new Pie($values, PIE_EARTH)// creation camembert (valeur en %)
  11. $plot->setCenter(0.4, 0.55)// positionne le centre du camenbert
  12. $plot->setSize(0.7, 0.6)// taille de l'ombre
  13. $plot->set3D(8);                                                // hauteur de la 3D
  14. $plot->explode(array(1 => 20, 4 => 26, 0 => 25))// selectionne  certaines parties en éclatées
  15.  
  16. $plot->setLegend($legende)// affiche la legende
  17. $plot->legend->setPosition(1.3)// determine la position de la légende
  18.  
  19. $graph->add($plot)// ajoute le tracé
  20. $graph->draw()// affiche le graph
  21. ?>

 

 

Filtre graphique

De nombreux sites obligent lors de la création d'un nouveau compte utilisateur, de saisir un code AntiSpam pour être sur que vous êtes bien une personne physique.

 

Captcha

 

Avec Artichow vous pouvez le faire de façon tres simple.

 
Fichier ex3.php
  1. <?php
  2. require_once "AntiSpam.class.php"// appel de la librairie antispam
  3.  
  4. $object = new AntiSpam()// creation de l'objet Graph
  5. $object->setRand(7)// nombre de caractères à afficher
  6. $object->save('example')// memorise les caractères
  7. $object->draw()// affiche le resultat
  8. ?>

Il est possible de récupérer la valeur qui est affiché pour tester si le code est correcte. Il faut commencer par un formulaire de saisie, pour que l'utilisateur saisisse ce qu'il voit :

Fichier ex4.htm
  1. <html>
  2. <body>
  3. <form action="ex4-resultat.php" method="get">
  4. <img src="ex3.php">
  5. <input type="text" name="code"/>
  6.   <input type="submit" value="Confirmer"/>
  7. </form>
  8. </body>
  9. </html>

Et après saisie, on vérifie si le code tapé est correct pour continuer.

Fichier ex4-resultat.php
  1. <?php
  2. require_once "AntiSpam.class.php";
  3.  
  4. $object = new AntiSpam();
  5.  
  6. if($object->check('example', $_GET['code']))
  7.         echo "Code Correcte";
  8. else
  9.         echo "Erreur de saisie";
  10.  
  11. ?>

Conclusion

La bibliothèque Artichow est un ensemble complet pour la manipulation graphique d'excellente qualitée. Elle n'a pas le niveau fonctionnel de la JpGraph mais s'en rapproche.

Le site officiel de l'application : http://www.artichow.org et merci à ses auteurs (français !)

 

 


Retour à l'accueil des articles