Maxy.fr

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

Partager l'article :

Articles similaires

Trier un tableau multidimensionnel en PHP

Il arrive parfois que l'on doivent trier un tableau contenant d'autres tableau suivant des valeurs pas directement accessibles. En soit on se retrouve bloqué car les fonctions de tries classique (asort(), ksort() ...) ne permettent pas de trier comme on le souhaite notre tableau. Sachez...

Enregistrer un tableau PHP dans un fichier

Il est parfois utile d'enregistrer dans un fichier des données en provenance d'un code PHP. Sachez qu'il est plutôt simple d'enregistrer un tableau de données dans un fichier en utilisant la fonction serialize().   Voici le code permettant d'enregistrer les données...

Utiliser la programmation pour résoudre un problème mathématiques

Vous avez sûrement entendu parlé de cet exercice de mathématiques qui fait tant parler de lui depuis quelques jours sur internet. Cet exercice a priori simple qu'un professeur Vietnamien a donné à faire à ses élèves d'une classe...