Statistique graphique (composant artichow)

Soyez le premier à donner votre avis sur cette source.

Vue 24 730 fois - Téléchargée 2 719 fois

Description

Une librairie très intéressante pour les statistiques: http://www.artichow.org
Mais je n'ai rien trouvé de "prêt à l'emploi" pour cette librairie, donc je m'y suis mis, pour l'instant je ne gère que les camemberts et les courbes mais il est très simple d'étendre le système aux autres types de graphique (dès que je le fais je mettrais à jour la source).

Normalement il vous suffit de mettre l'include et vous pouvez créer un graphique avec preload en quelques lignes de code !!! Dans les exemples les tableaux de données sont en dur mais ils peuvent très bien provenir d'une base de données !!

Attention le dossier 'cache' situé dans le dossier 'artichow-1.1.0' doit avoir les droits d'écriture (c'est la que les png sont générés)

Certains vont dire que ma source est pas propre, que j'aurais du faire de l'objet, du PHP5 etc...etc... en fait j'ai fais ce que j'ai pu avec ce que j'avais (limité à PHP 4.3) par contre je prends toutes les critiques constructives et les propositions d'amélioration !

Source / Exemple :


<?php
session_start();
?>
<html>
<head>
<title>Exemple MyArtiChow</title>
</head>
<body>
<a href="index2.php">Version sans anti-alias</a>
<?php
// Permet de lancer un traitement lorsque toutes les images sont chargées...
$checkStatImagesOnAllComplete = 'alert("Toutes les images sont chargées !");';

// Include avec toutes mes fonctions qui vont bien...
include('artichow-1.1.0/statistiques_include.php');

/****************************************************** LES CAMEMBERTS *****************************************************/

/*********   EXEMPLE 1 (simple)   **********/

// Titre du camembert
$title = "EXEMPLE 1 (simple) :";

// Largeur du camembert
$width = 750;

// Hauteur du camembert
$height = 400;

// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');

// Tabeau des valeurs
$data = array(38,28,7,37);

// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data,'');

echo'</br></br>';

/*********   EXEMPLE 2 (mise en forme des légendes)   **********/

// Titre du camembert
$title = "EXEMPLE 2 (mise en forme des légendes) :";

// Largeur du camembert
$width = 750;

// Hauteur du camembert
$height = 400;

// Tableau des légendes
$legend = array('ABCDEF','GHIJKL','MNOPQRS','TUVWXYZ');

// Tabeau des valeurs
$data = array(110,25,86,42);

// On met en forme les légendes
foreach($legend as $key => $value){
	if(strlen($value)>30){
		$lbl = substr($value,0,27).'...';
	}
	else{
		$lbl = str_pad($value,30,'.');
	}
	$legends[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
	$datas[] = $data[$key];
}

// On crée l'image
insertStatImage(1,$width,$height,$title,$legends,$datas,'');

echo'</br></br>';

/*********   EXEMPLE 3 (tri par ordre décroissant)   **********/

// Titre du camembert
$title = "EXEMPLE 3 (tri par ordre décroissant) :";

// Largeur du camembert
$width = 750;

// Hauteur du camembert
$height = 400;

// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');

// Tabeau des valeurs
$data = array(16,25,2,34);

// Tri par ordre décroissant
array_multisort($data, SORT_DESC, $legend, SORT_ASC);

// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data,'');

echo'</br></br>';

/*********   EXEMPLE 4 (couleurs personnalisées)   **********/

// Titre du camembert
$title = "EXEMPLE 4 (couleurs personnalisées) :";

// Largeur du camembert
$width = 750;

// Hauteur du camembert
$height = 400;

// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');

// Tabeau des valeurs
$data = array(16,25,2,34);

// Tabeau des couleurs
$color = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');

// On met en forme les légendes
foreach($legend as $key => $value){
	if(strlen($value)>30){
		$lbl = substr($value,0,27).'...';
	}
	else{
		$lbl = str_pad($value,30,'.');
	}
	$legends2[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
	$datas2[] = $data[$key];
	$colors2[] = $color[$key];
}

// Tri par ordre décroissant
array_multisort($datas2, SORT_DESC, $legends2, SORT_ASC, $colors2);

// On crée l'image
insertStatImage(1,$width,$height,$title,$legends2,$datas2,$colors2);

echo'</br></br>';

/*********   EXEMPLE 5 (on passe une seule couleur et il s'occupe du dégradé)   **********/

// Titre du camembert
$title = "EXEMPLE 5 (dégradé de couleurs) :";

// Largeur du camembert
$width = 750;

// Hauteur du camembert
$height = 400;

// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');

// Tabeau des valeurs
$data = array(38,28,7,37);

// On met en forme les légendes
foreach($legend as $key => $value){
	if(strlen($value)>30){
		$lbl = substr($value,0,27).'...';
	}
	else{
		$lbl = str_pad($value,30,'.');
	}
	$legends3[] = str_pad($lbl,35-strlen($data[$key]),'.').$data[$key];
	$datas3[] = $data[$key];
}

// Tabeau des couleurs (on passe la couleur de base, il va créer un dégradé)
$color = array('#5C69AA');

// Tri par ordre décroissant
array_multisort($datas3, SORT_DESC, $legends3, SORT_ASC);

// On crée l'image
insertStatImage(1,$width,$height,$title,$legends3,$datas3,$color);

echo'</br></br>';

/****************************************************** LES COURBES *****************************************************/

/*********   EXEMPLE 1 (Courbe simple...)   **********/

// Tableau des légendes
$legend = array('Titi','Toto');

// Tabeau des valeurs
$data2[] = array(5,11,10,8,12,0);
$data2[] = array(30,25,28,29,34,25);

// Tabeau des couleurs
$color2 = array('#5C69AA','#DF6C6C');

$title = " EXEMPLE 1 (Courbe simple...)";
$width = 750;
$height = 500;

insertStatImage(2,$width,$height,$title,$legend,$data2,$color2);

echo'</br></br>';

/*********   EXEMPLE 2 (Des belles courbes...)   **********/

// Tableau des légendes
$legend = array('Titi','Toto','Tata','Les autres');
// Mise en forme des légendes
foreach($legend as $key => $value){
	if(strlen($value)>15){
		$lbl = substr($value,0,14).'.';
	}
	else{
		$lbl = str_pad($value, 15 , ' ');
	}
	$legend[$key] = $lbl;
}

// Tabeau des valeurs
$data3[] = array(0,9,8,0,5,15);
$data3[] = array(12,16,18,25,28,20);
$data3[] = array(5,11,10,8,12,0);
$data3[] = array(30,25,28,29,34,25);

// Tabeau des couleurs
$color3 = array('#92DDF3','#5C69AA','#A35E9E','#DF6C6C');

// Tableau des libelles de l'axe des abcisses
$lblAbs = array('01/2008','02/2008','03/2008','04/2008','05/2008','06/2008');

$title = " EXEMPLE 2 (Des belles courbes...)";
$width = 750;
$height = 500;

insertStatImage(2,$width,$height,$title,$legend,$data3,$color3,$lblAbs);

echo'</br></br>';

?>
</body>
</html>

Conclusion :


Attention le dossier 'cache' situé dans le dossier 'artichow-1.1.0' doit avoir les droits d'écriture (c'est la que les png sont générés)

Tout est dans le zip !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

kingstong
Messages postés
4
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
21 octobre 2011
-
Je retire ma question :)
J'ai suivi les instructions dans le commentaire
Commentaire de coucou747 le 08/08/2008 16:05:00 administrateur CS
et sa MAAAAARCHE :)
Merci
kingstong
Messages postés
4
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
21 octobre 2011
-
Bonjour
J'ai suivi la procédure de yohann034 et cela ne m'affiche que les cadres des images, avec le message "Toutes les images sont chargées !"
J'ai un serveur Ubuntu Php5.3

Une piste :) ?
crazygogo
Messages postés
135
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
17 avril 2009
-
merci ! franchement pour une fois ça fait plaisir ;)
yohann034
Messages postés
4
Date d'inscription
dimanche 28 novembre 2010
Statut
Membre
Dernière intervention
10 janvier 2012
-
Bonjour,

félicitations pour ce script. Je suis sur Windows+PHP Version 5.3.0+MySQL.

J'ai :
- télécharger le zip
- dézippé le dossier
- copier/coller dans le dossier de mon site
- ouvert dans un navigateur, l'index.php à la racine du dossier dézippé

Et ça marche !!

Rien à corriger ! c'est la première fois en 7 ans de développement php, javascript etc.

J'ai pu rapidement intégrer les données provenant de ma base de données.

Programmation très simple et donc rapide à comprendre et rapide à exécuter, que du bonheur !

Un grand merci !!
ghetto95
Messages postés
15
Date d'inscription
lundi 15 février 2010
Statut
Membre
Dernière intervention
17 juin 2011
-
Excellent travail! Juste une question, est-il possible de retirer l'encadré, c-a-d le rectangle qui entoure le tout (camembert+legende+titre)?
Merci d'avance et encore excellent travail. Une très bonne base pour faire d’excellente chose....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.