6.Le langage PHP
6.14.JpGraph pour tracer courbes et diagrammes
6.14.1.Introduction
Nous avons vu que PHP permet de créer des images à la volée, via la bibliothèque GD
[comment?]. Cela nous a par exemple permis de tracer des histogrammes. Mais tracer des histogrammes, des diagrammes, des camemberts réclame pas mal de travail ne serait-ce que pour régler les problèmes d'échelle. Dans ce cas, il peut être fort judicieux d'utiliser une bibliothèque pour se simplifier la vie. C'est ce que propose JpGraph.
JpGraph est un ensemble de fichiers PHP. Nous pouvons même dire, un ensemble de classes puisque JpGraph est écrit en programmation orientée objet
[c'est quoi?] (nous ne nous intéresserons, ici, qu'à la version 2 et supérieure de JpGraph, prévue pour fonctionner avec PHP 5.1 et plus).
6.14.2.Installation
Comme JpGraph s'appuie sur la bibliothèque GD (version 2) il convient de s'assurer que ce module est installé
[comment?].
JpGraph, quant à lui, est à télécharger
ici (veillez bien à prendre la version pour PHP>=5.1). Une fois l'archive .tar.gz récupérée, vous pouvez la décompresser dans le dossier de votre choix. Seul le contenu du répertoire
src/ est nécessaire à l'exécution (son sous répertoire
Examples n'est pas utile non plus). Vous devez donc copier ce contenu dans un dossier accessible (pour un include) depuis votre site web. Si, vous avez un doute, copiez simplement le contenu de
src dans un dossier
jpgraph à la racine de votre espace web
[où?].
6.14.3.Histogramme
L'histogramme que nous avons tracé (pas simplement) dans le chapitre sur la bibliothèque GD, nous pouvons le tracer avec JpGraph, via le script suivant:
<?php
require_once("include_path_inc.php");
require_once("jpgraph.php");
require_once("jpgraph_bar.php");
$donnees = array(12,23,9,58,23,26,57,48,12);
$largeur = 250;
$hauteur = 200;
// Initialisation du graphique
$graphe = new Graph($largeur, $hauteur);
// Echelle lineaire ('lin') en ordonnee et pas de valeur en abscisse ('text')
// Valeurs min et max seront determinees automatiquement
$graphe->setScale("textlin");
// Creation de l'histogramme
$histo = new BarPlot($donnees);
// Ajout de l'histogramme au graphique
$graphe->add($histo);
// Ajout du titre du graphique
$graphe->title->set("Histogramme");
// Affichage du graphique
$graphe->stroke();
?>
et voici le résultat
C'est quand même plus simple, non?
Les commentaires associés au script devraient être suffisamment clairs pour comprendre le principe. Voici tout de même deux petites informations.
Le fichier jpgraph.php doit être inclus quelque soit le type de graphique voulu. Le fichier jpgraph_bar.php est dédié au tracé d'histogramme.
Nous avons créé un petit script
include_path_inc.php afin de modifier le chemin de recherche des scripts PHP pour que les fichiers jpgraph_*.php puissent être trouvés. Copiez le script suivant au même endroit que
jpgraph_histo.php.
<?php
set_include_path(get_include_path().PATH_SEPARATOR.
dirname(__FILE__)."/jpgraph/");
?>
Si vous avez copié le contenu du dossier
src de JpGraph dans un repertoire
jpgraph au même endroit que le script
jpgraph_histo.php vous ne devriez avoir rien a changer, sinon, modifiez le chemin précisé dans
include_path_inc.php pour pointer vers le dossier contenant les fichiers de JpGraph.
|
- ici, dirname(__FILE__) est le dossier où se trouve le fichier include_path_inc.php
|
6.14.4.Courbe
Vous auriez préféré une courbe plutôt qu'un histogramme? Facile, il suffit de
- Remplacer l'inclusion de jpgraph_bar.php par jpgraph_line.php.
- Remplacer l'instanciation de la classe BarPlot() par BarLine().
|
ce qui donne
dont voici le code
6.14.5.Superposition de tracés
Pour superposer des tracés, rien de plus simple. Il suffit de les ajouter, les uns après les autres, avec la méthode
add() de l'objet
Graph.
dont voici le code
Ce n'est toujours pas ce que vous vouliez? Alors poursuivons.