Labo : Générateur de graphiques SVG en PHP
L'utilisation de graphiques est indispensable lorsque l'on développe un système de statistique entre autre. Pour cela il existe le SVG, un format de données basé sur XML et utilisable en HTML5 pour créer des graphiques vectoriels. Le problème reste que le HTML ne nous permet pas d'obtenir un résultat dynamique, c'est pourquoi j'ai développé une classe PHP permettant la génération de données SVG et donc de graphiques vectoriels.
Générateur de graphiques SVG en PHP :
La classe PHP est disponible sur Github.
Graphique simple (1 unique courbe) :
Son utilisation est simple et permet par exemple de créer un graphique de base comme celui-ci :
Le code PHP correspondant est le suivant :
<?php require('../svgraph.class.php'); $data = array( 'Janvier' => 200, 'Février' => 120, 'Mars' => 235, 'Avril' => 100, 'Mai' => 167, 'Juin' => 117); $graph = new graph(700, 300, $data); echo $graph->graphLignes(); ?>
Vous remarquerez que les données sont sous forme d'un tableau.
L'objet graph a pour argument la largeur du graphique, la hauteur et le tableau contenant les données (graph(largeur, hauteur, données)).
Les lignes horizontales correspondant à l'axe des ordonnées sont calculées automatiquement.
Plusieurs courbes sur un même graphique :
Il est aussi possible d'inclure plusieurs courbes sur un même graphique, cela donne par exemple ce résultat :
Concernant le code, il est assez semblable au premier exemple, seul le tableau des données change :
<?php require('../svgraph.class.php'); $data = array( 'Lundi' => array(123, 765), 'Mardi' => array(432, 612), 'Mercredi' => array(69, 234), 'Jeudi' => array(451, 90), 'Vendredi' => array(54, 80) ); $graph = new graph(700, 300, $data, false, array('red', 'green')); echo $graph->graphLignes(); ?>
À noter ici qu'il y a plus d'arguments utilisé pour l'objet "graph" :
- Le dernier correspond à la couleur de chacune des courbes. Celle-ci peuvent être définies en anglais comme ci-dessus ou en hexadécimale (#FF000 pour rouge par exemple). L'ordre étant le même que pour le tableau des données.
- Le quatrième (ici "false") correspond lui à la valeur minimale de l'axe des ordonnées. Par défaut le minimum correspond à la valeur minimale des données, pour avoir ce résultat il faut indiquer "false". Il est aussi possible de forcer cette valeur minimale à zéro, pour cela il faut indiquer "true".
Catégories : PHP
Par Guillaume le 09/05/2014 à 14:26