Depuis de nombreuses années, les bibliothèques pour créer des graphiques en PHP sont de plus en plus nombreuses. Dans cet article, nous allons effectuer un tour d'horizon de ce qu'il existe actuellement. Nous verrons comment ces différentes bibliothèques se comportent et se comparent, à l'aide d'un essai complet de code. Nous avons retenu sept bibliothèques :
- Artichow
- Chart Director
- GDGraph
- Graphp-ic
- Jpgraph
- Phplot
- Zackbloom
Depuis de nombreuses années, les bibliothèques pour créer des graphiques en PHP sont de plus en plus nombreuses. Dans cet article, nous allons effectuer un tour d'horizon de ce qu'il existe actuellement. Nous verrons comment ces différentes bibliothèques se comportent et se comparent, à l'aide d'un essai complet de code. Nous avons retenu sept bibliothèques :
- Artichow
- Chart Director
- GDGraph
- Graphp-ic
- Jpgraph
- Phplot
- Zackbloom
Configurations
Pour utiliser les bibliothèques graphiques, il faut obligatoirement :• Activer la librairie graphique GD de php.ini
• Hébergement avec le support de PHP
Méthode de test
Pour notre comparaison graphique, nous allons créer un graphique de couleur verte, avec une légende, un titre, et 4 valeurs (1,-2.5,7,3) associées à des trimestres dans une image de dimensions 500x300 pixels. À partir de ces hypothèses, nous allons pouvoir comparer les prérequis, les styles de programmation et les résultats avec chaque librairie.Installation Générale
Après avoir télécharger toutes les bibliothèques sur les sites de tous les auteurs, il faut effectuer l'installation de chacune d'elles pour réaliser nos graphes. La majorité des bibliothèques graphiques possèdent 1 ou plusieurs fichiers à mettre dans votre site et d'effectuer la connexion ente votre site et la bibliothèque.Description des bibliothèques testées
ARTICHOW
Version actuelle : 1.10 et 2.0aURL : http://www.artichow.org
Version : PHP 4.xx ou PHP 5.xx ou plus
GD : 2 ou plus
Programme en francais
Documentation en ligne
Descriptif : Il existe plusieurs jeux de bibliothèques : l'un pour PHP 4 et l'autre pour PHP 5. Vous n’avez rien à configurer : c’est l’application qui se charge de choisir la bonne version de PHP du serveur.
Il existe un fichier configuration qui vous permet de modifier certains paramètres de la librairie si vous le désirez
Installation : aucun processus d'installation en dehors du téléchargement. Mettez simplement le fichier config et les dossiers PHP 4 et 5 dans le site
Licence : Domaine public
Réalisations possibles :
- Traitement de l’image
- Histogramme
- Ligne
- Courbes de math
- Pattern
- Camembert
- Camembert éclaté
- Texte
- Scatter : avec des valeurs, en cercle, en impulses
- Captcha Antispam
Particularités : à partir de la version 2, il sera possible de générer des graphes en Flash avec l'extension Ming.
Chaque graphique est pris en charge par une classe différente, et donc un fichier différent. L’avantage de cette approche est de charger en mémoire juste la partie de la bibliothèque dont on a besoin pour créer le graphique.
Exemple :
<?php
require_once "LinePlot.class.php"; $graph = new Graph(500, 300); $graph->setAntiAliasing(FALSE); $graph->title->set("Exemple Direction PHP"); $values = array(1,-2.5,7,3); $y = array('Trimestre 1','Trimestre 2','Trimestre 3','Trimestre 4'); $plot = new LinePlot($values); $plot->legend->add($plot, 'Trimestre', LEGEND_MARK); $plot->setColor(new Color(0, 255, 0 , 20)); $plot->xAxis->setLabelText($y); $plot->yAxis->setLabelPrecision(1); $plot->setSpace(10, 10, NULL, NULL); $graph->add($plot); $graph->draw(); ?>
Résultat :

CHART DIRECTOR
Version actuelle : 4.1URL : http://www.advsofteng.com/
Version : PHP 4.3.x ou plus
GD 2 ou plus
Programme en Anglais
Documentation : HTML
Descriptif : toutes les classes sont dans le même fichier.
Installation pour Windows
Il faut ajouter une extension à PHP 5.2.x.
1. Ajoutez la ligne extension=phpchartdir520.dll au fichier de configuration php.ini
2. Copier les bibliothèques systèmes (fichiers lib/*.dll) dans le répertoire extensions/ de PHP
3. copier le script lib/phpchartdir.php dans un répertoire de votre site
Un assistant d'installation est fourni pour chaque système d'exploitation sur le site de la bibliothèque.
Licence : commerciale, 99 dollars
Réalisations possibles :
- Anti-aliasing
- Fond d'écran
- Graphiques 2D et 3D
- Nuages de points
- Radars
- Camemberts 3D
- Histogrammes 3D
- Lignes en 2D et 3D
- Courbes en 2D et 3D
- Aires
- Incertitudes
- Zones semi-transparence
- Texte
- Système de couches
- Dégradés
- Motifs de remplissage
- Diagramme de Gantt
- Graphiques interactifs (image map)...
Particularités :
- Une aide à l'installation est proposée, en fonction de votre système d'exploitation.
- Tous les modèles graphiques sont proposés en 3D
- Il est impossible de créer sa propre classe
Exemple :
<?php
require_once("../lib/phpchartdir.php"); $data = array(1,-2.5,7,3);
$labels = array("Trimestre 1", "Trimestre 2", "Trimestre 3", "Trimestre 4"); $c = new XYChart(500, 300); $c->addTitle2(Top, "Exemple Direction PHP", "arial.ttf", 12, 0x000000);
$c->setPlotArea(30, 30, 360, 230);
$c->addLineLayer($data,0x00FF00); $c->xAxis->setLabels($labels);
$c->xAxis->setLabelStep(1); $c->addLegend(405, 100);
$layer = $c->addLineLayer();
$layer->addDataSet($data, 0x00FF00, "Trimestre"); header("Content-type: image/png");
print($c->makeChart2(PNG));
?>
Résultat

GDGRAPH
Version actuelle : 2.1URL : http://www.makkosolutions.com.mx/product/gdgraph/
Version : PHP 4.3.x ou plus
GD 2 ou plus
Programme anglais
Documentation : format HTML sur internet
Descriptif : toutes les classes sont dans le même fichier
Installation : aucune installation
Licence : licence GPL
Realisation possible
- Histogramme 3D
- Ligne 3D
- Camembert 3D
Particularités :
Actuellement peu de variété dans les graphiques possibles. La bibliothèque est est très facile à utiliser, et permet même des affichages 3D.
Exemple
<?php
require_once("gdgraph.php"); $gdg = new GDGraph(500,300,"Exemple Direction PHP"); $arr = Array( 'Trimestre' => Array(1,-2.5,7,3));
$colors = Array('Trimestre' => Array(50,210,50) );
$x_labels = Array('Trimestre 1','Trimestre 2','Trimestre 3','Trimestre 4'); $thicknesses = Array('Trimestre ' => 1); $gdg->line_graph($arr, $colors, $x_labels); ?>Résultat :

GRAPHP-IC
Version actuelle : 1.0URL : Aucun
PHP : 3.x ou 4.x
GD : 1.8x ou 2
Programme Français
Documentation : fournie avec le code source
Descriptif : 1 fichier par type de graphique
Installation : Aucune installation
Licence : licence GPL
Réalisations possibles :
- Camembert
- Histogramme
- Courbe
Particularités :
Il est important de connaître les noms des fonctions en PHP.
JPGRAPH
Version actuelle : 2.2URL : http://www.aditus.nu/jpgraph/
Version : PHP 5.1x ou plus
GD : 1.8.x ou 2.15 ou plus
Programme : anglais
Documentation : aide en ligne pour les fonctions
Descriptif : une version 1.21b existe pour PHP 4 et PHP 5.0
Il existe un fichier comprenant l'ensemble des librairies
Installation : aucune installation
Licence : libre pour une licence non-commerciale.
Pour une utilisation commerciale, licence payante.
Réalisations possibles :
- Ligne
- Histogramme
- Camembert
- Nuages de points
- Anti-aliasing
- Fond d'écran
- Graphiques 2D et 3D
- Radars
- Courbes
- Aires
- Incertitudes
- Zones
- Semi-transparence
- Texte
- Dégradés
- Motifs de remplissage
- Diagramme de Gantt
- Graphiques interactifs (image map)
Particularités :
Il existe une version pour PHP 4
Exemple
<?php
include ("../jpgraph.php");
include ("../jpgraph_line.php"); $ydata = array(1,-2.5,7,3);
$xdata = array('Trimestre 1','Trimestre 2','Trimestre 3','Trimestre 4'); $graph = new Graph(500,300,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(40,40,40,50);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetTickLabels($xdata);
$graph->title->Set("Exemple Direction PHP"); $lineplot=new LinePlot($ydata);
$lineplot->SetColor("green"); $lineplot->SetLegend("Trimestre");
$graph->Add($lineplot); $graph->Stroke();
?> Résultat
:
PHPLOT
Version actuelle 5.0rc3URL : http://www.phplot.com
Version : PHP 4.2.0 ou plus récent
GD : 2 ou plus
Programme en Anglais
Documentation : format HTML
Descriptif :
Il existe plusieurs jeux de bibliothèques : toutes les classes sont dans le même fichier.
Installation : aucune installation
Réalisations possibles :
- Lignes
- Barres analogiques
- Barres empilées
- Points
- Camembert
- Histogramme en 2D ou 3D
- Grilles verticales et horizontales
- Texte
- Image
- Graphiques en 2D
Exemple :
<?php
require_once 'phplot.php'; $plot =& new PHPlot(500,300); $example_data = array(
array('Trimestre 1',1),
array('Trimestre 2',-2.5),
array('Trimestre 3',7),
array('Trimestre 4',3)
); $plot->SetDataValues($example_data); $plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
$plot->SetDataColors('green');
$plot->SetTitle('Exemple Direction PHP'); $plot->SetLegend('Trimestre'); $plot->DrawGraph();
?>
Résultat :

ZACKBLOOM
Version actuelle : 1.0URL : http://www.zackbloom.org/
PHP 4.xx et plus
GD : 2 ou plus
Application en anglais
Documentation format HTML
descriptif :
Un seul fichier contenant toutes les classes
Installation : aucune installation
Licence : Licence GPL
Réalisations possibles :
- Courbes
- Camembert en 3D
- Histogramme
- Courbes maths
- Ligne et point
- Spiral
- Courbes graphiques
Particularités :
- Connaître le temps d'exécution pour afficher l'image
Exemple :
<?php
include "graph.oo.php";
$graph = new graph(500,300); $graph->setColor('color',0,'green');
$graph->setProp('title','Exemple Direction PHP');
$graph->addPoint(1);
$graph->addPoint(-2.5);
$graph->addPoint(7);
$graph->addPoint(3);
$graph->setProp('scale',array('Trimestre 1','Trimestre 2','Trimestre 3','Trimestre 4'));
$graph->graph();
$graph->showGraph();
?>
Résultat :

Résumé :
|
|
Artichow |
Chart Director |
GDGraph |
Graphp-ic |
Jpgraph |
Phplot |
Zackbloom |
|
Version |
2.0a |
4.1 |
2.1 |
1.0 |
2.2 |
5.0rc3 |
1.0 |
|
PHP |
4.xx,5.xx |
4.xx,5.xx |
4.3.x,5.xx |
3.x,4.x |
4.xx,5.xx |
4.2.x,5.xx |
4.xx,5.xx |
|
GD |
2 |
2 |
2 |
1.8,2 |
1.8,2 |
2 |
2 |
|
Licence |
GPL |
Payant |
GPL |
GPL |
GPL, Payant |
GPL |
GPL |
|
Langue |
FR |
EN |
EN |
FR |
EN |
EN |
EN |
|
Install |
Aucune |
Differents suivant les OS |
Aucune |
Aucune |
Aucune |
Aucune |
Aucune |
|
Doc. |
*** |
*** |
*** |
* |
*** |
*** |
*** |
|
Prise en main |
*** |
** |
*** |
* |
*** |
** |
** |
|
Resultat Graph |
*** |
** |
** |
* |
*** |
*** |
** |
|
Avis General |
*** |
** |
** |
* |
*** |
*** |
** |
Conclusion
Toutes les solutions qui vous sont présentés, évoluent régulièrement. Il est préférable d'aller régulièrement sur leur site de référence pour s'assurer de leurs évolutions futures.Concernant l'ensemble de toutes ces librairies graphiques, voici nos propres palmes :
-
Le plus prometteur : Artichow
- Le plus établi : JP Graph
- Le plus populaire : JP Graph
| < Précédent | Suivant > |
|---|
Vous pouvez ajouter votre commentaire! |


