begin process at 2012 02 09 13:37:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CLASSE DE GRAPHIQUE À BARRES 3D

CLASSE DE GRAPHIQUE À BARRES 3D


 Information sur la source

Note :
9,79 / 10 - par 24 personnes
9,79 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :graphique, barres, 3d Niveau :Initié Date de création :04/03/2005 Date de mise à jour :05/03/2005 16:41:49 Vu / téléchargé :12 524 / 2 129

Auteur : Garno

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (66)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Cette classe permet de créer et d'afficher un graphique à barres 3D facilement et entièrement personnalisé. Pour l'instant vous ne pouvez qu'afficher des valeurs positives mais en général, pour des statistiques il est rare que l'on descende sous zéro. J'attend vos commentaires avec impatience.

Source


 Conclusion

Dès que vous m'aurez donner vos commentaires sur ma source et vos idées je la mettrais à jour puisque j'attend d'avoir des signes positif avant de continuer mon boulot et ainsi pouvoir le partager avec vous de nouveau.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 mars 2005 16:39:57 :
Changement des " pour de ' et ajout d'une fonction permettant d'afficher les valeurs exactes des barres.
05 mars 2005 16:41:51 :
Changement de la capture

 Sources du même auteur

Source avec une capture GÉNÉRATION/GESTION DE FORMULAIRE VIA FICHIER XML

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec Zip Source avec une capture METTEZ VOS IMAGES OU VOS PHOTOS EN 3D ; EN PERSPECTIVE par zulrigh
Source avec Zip Source avec une capture GRAPHIQUE CAMEMBERT 3D par BEAUBRIUS
Source avec Zip Source avec une capture LES CAMEMBERTS 3D par opossum_farceur
Source avec Zip Source avec une capture UN GRAPHIQUE CAMEMBERT EN 3D par pgpp

Commentaires et avis

Commentaire de coucou747 le 04/03/2005 20:56:27 administrateur CS

ton programme a l'air vraiment bien.
tu utilises la 3d iso, mais pour un graph, ça passe...
sinon, pour le code, j'ai pas trop regardé, mais t'as des " partout... même quand t'as pas de variables...

Commentaire de Garno le 04/03/2005 21:13:17

je ne comprend pas trop ce qu'il y a de mal a avoir des " partout même sans variable ... tu peux expliquer ?

en général les ' ' c'est pour les caractères ( 'a' ) et non pour les chaînes de caractère alors que les le sont " "

Commentaire de coucou747 le 04/03/2005 21:29:45 administrateur CS

non ça c'est en C++...
en php, les " servent quand tu inclue une variable dans une chaine (ça metra le contenu de la chaine au lieu de con nom...) les ' servent lorsque l'on veut afficher les noms de variables....

les ' sont bien plus rapides à exécuter...

Commentaire de Garno le 04/03/2005 21:32:09

Ok je croyais que c'était une règle universel qui ne s'appliquait pas seulement au C++. Merci et je vais rectifier sa dès que possible !

Commentaire de Garno le 04/03/2005 21:33:05

Donc il est rendu inutile de faire echo "Allo ".$Var1." !"; ??

Commentaire de coucou747 le 04/03/2005 21:36:31 administrateur CS

echo "Allo $var1 1";

ou plus rapide (et donc mieux...)

echo 'Allo '.$var1.' 1';

c'est étonnant que tu programmes obj et que tu ne sache pas ça...

Commentaire de coucou747 le 04/03/2005 21:40:56 administrateur CS

enfin ça reste une bonne source...

c'est OO, et on ne voit pas souvent ça sur ce forum

bien joué et bonne continuation...

Commentaire de Garno le 04/03/2005 21:41:51

Niveau optimisation j'y connais pas grand chose mais faut pas m'en vouloir j'ai jamais fait d'énorme script où l'optimisation est nécessaire. Bref où je veux en venir, c'est que pour moi ce n'était pas une priorité et que justement poster des sources permet de se faire rectifier ;)

Commentaire de Anthomicro le 04/03/2005 22:03:47

Salut,

c'est vraiment beau, j'adore ;-)

echo "Allo $var1 1";

si tu veux garder les doubles quotes tout en ayant plus rapide tu fais

echo "Allo".$var1." 1";

mais bon les simples quotes sont plus rapides.

echo 'Allo'.$var1.' 1'; est plus rapide

et echo 'Allo',$var1,' 1'; est encore plus rapide...

a ++

Commentaire de coucou747 le 04/03/2005 22:34:36 administrateur CS

je vais mettre 9... c'est bien codé a part ces "... et c'est utile, et une source comme celle la n'arrives pas souvent...

Commentaire de Anthomicro le 04/03/2005 22:39:53

Je me suis lâché j'ai mis 10 ^^

Commentaire de Garno le 05/03/2005 01:33:44

Héhé merci beaucoup :)
Je sais qu'en général Anthomicro à un esprit critique assez fort :P et merci pour vos commentaires

Commentaire de Anthomicro le 05/03/2005 02:23:39

Bah non mais faut savoir reconnaître ce qui est bien aussi ;-)

Faut dire quand ça va pas mais aussi quand ça va, et là ça va ;-)

Commentaire de lumesh le 05/03/2005 08:53:22

propre, joli, bien foutu, 10/10

Commentaire de fuckya le 05/03/2005 10:34:11

chapeau, réellement bien fait : 10/10

dommage pour les " mais bon ^^

Commentaire de LuckyLuck le 05/03/2005 13:38:34

la grande classe ! 10

Commentaire de Kirua le 05/03/2005 13:45:16

Très bien fichu, j'apprécie bcp.
Juste une chose: tu devrais, à mon sens, indiquer au dessus ou dans chaque colonne la valeur exacte (c'est plus simple pour s'y retrouver).

Commentaire de Garno le 05/03/2005 16:42:28

Si je regarde la capture que j'ai fais, mettre les valeurs au dessus de chaque colonne me semble impossible. Puisqu'il y en a toujours une qui est au plus haut point du graphique donc on ne peut pas écrire au dessus. Donc j'ai décidé de mettre la valeur en dessous du nom de la barre. J'ai aussi changer les " pour des ' pour le plaisir de tous ;)

Commentaire de Kirua le 05/03/2005 18:21:17

ben ... tu m'étonnes là! t'as qu'à rajouter une marge! pas bien dur. écris aussi la valeur la plus haut / la plus basse dans une couleur différente

Commentaire de Garno le 05/03/2005 23:06:44

Désolé je suis un peu coincé dans le temps alors j'ai opté pour une solution facile mais j'ai règlé ça. Je ferais une update un petit peu plus tard qui permettra les valeurs négatives en même temps que les valeurs au dessus de chaque barres avec une couleur de barre et de texte différente pour la plus grande et la plus petit valeur.

Commentaire de la_pin le 06/03/2005 13:23:14

vraiment mignon, bravo !

Commentaire de delta2 le 07/03/2005 09:27:23

Super ... pas de problème dans l'intégration à mes pages.
Pour utiliser des valeurs issues d'une BD, j'ai remplacé :
$VData=array("nom1","nom2","nom_etc") ;
$Values=array("val1","val2","etc") ;

par
// requete sql classique puis ...
$i=0;
while ($rs = mysql_fetch_array($result)) {
$Data[$i] = $rs["nom"];
$Values[$i] = $rs["Somme"];
$i=$i+1;
}
************
Pour avoir un tableau de la largeur proportionnelle au nb de valeur, j'ai récupéré $i (voir au-dessus) et en ai défini :
$larg = $i * 60; // 60px par enregistrements

Donc :
$Graphique->SetGraphSize (250, $larg);
***********
Merci au créateur de ce script.

Commentaire de Missions_courtes le 07/03/2005 10:59:52

Bonjour,
Félicitation Garno.
L'installation et l'utilisations sont simples et le résultat très bon.
Michel FOUILLADE

Commentaire de Kirua le 07/03/2005 17:17:10

Delta2, utilise mysql_fetch_assoc dans ton cas, c'est plus rapide. Aussi, tu peux écrire $i++; plutôt que $i = $i + 1;

Commentaire de joebuz le 07/03/2005 21:21:01

J'ai essaye en mettant les valeurs dune BD (comme Delta2), ca ne marche pas !!!
Comment ca se fais, SVP aidez-moi !
mon script :

include("class.graphique3dbars.php");

$Graphique = new GraphiqueCommande;

$Graphique->SetBorder (1, "Noir");
$Graphique->SetGraphPadding (40, 10, 20, 20);
$Graphique->SetValueShow (true);
$larg = "500";
$Graphique->SetGraphSize (250, $larg);
$titre = "coucou !";
$Graphique->SetGraphTitle ($titre, "center", 3);
$Graphique->SetGraphFont (2, "FontNoir");
$Graphique->SetGraphDeepness(10);
$Graphique->SetGraphYScale (100);
$Graphique->SetBarsColor ("Mauve", "Noir");

$sql = "SELECT a,b FROM table";
$req = mysql_query($sql) or die('Erreur SQL !'. $sql .mysql_error());
$i =0;
while($rs = mysql_fetch_assoc($req)){
$Data[$i] = $rs['b'];
$Values[$i] = $rs['a'];
$i = $i++;}

$Graphique->SetGraphData ($Values[$i], $Data[$i]);
$Graphique->DrawGraphArea ("temp");

Commentaire de Garno le 07/03/2005 21:38:27

$Graphique->SetGraphData ($Values[$i], $Data[$i]);

à remplacer par

$Graphique->SetGraphData($Values, $Data);

sinon tu envois au graphique seulement 1 valeur qui est $Data[$i] et qui de plus est vide. Il faut envoyer le tableau complet en enlevant le [$i].

Commentaire de joebuz le 07/03/2005 21:52:27

ouai, ca fonctionne, mais le probleme c'est que ca m'affiche un seul resultat (une seul barre), normalement avec le while ca devrais m'afficher tout les a et b de ma bd

Commentaire de Kirua le 07/03/2005 21:55:37

$i = $i++;

Non, écris ça:

$i++;

En fait, la "valeur de retour" de $i++ est la valeur de $i avant l'incrémentation, donc tu affecte $i à $i, et puis ton ++ est dans le vent: t'incrémentes jamais! revois la base des opérations ...

Commentaire de joebuz le 07/03/2005 22:15:38

Merci c'est cool, désolé j'avais pas vu cette grosse erreur, trop de fatigue ...!
@+

Commentaire de frop01 le 08/03/2005 09:52:47

No comment ;)  10/10

Commentaire de kiki650 le 15/03/2005 17:20:33

Ce script a l'air vraiment interessant. J'ai cependant une erreur sur la fonction: imagecreatetruecolor()
Google me dit qu'il faut la bibliotheque  GD 2.0.1 ou supérieure. J'ai jamsi entendu parler de ca, pouvez vous m'aider?
Merci!

Commentaire de Missions_courtes le 15/03/2005 18:27:23

Bonjour,
Voici les modifications à effectuer dans "php.ini" :

WAMP:
---------
Modification du fichier "C:\wamp\Apache\php.ini"  :
  Valider   extension=php_gd2.dll   => GD Version 2.0 or higher

EASYPHP :
-------------
Modification du fichier "C:\WINNT\php.ini"  :
  Invalider ;extension=php_gd.dll   => GD Version 1.6.2 or higher
  Valider   extension=php_gd2.dll   => GD Version 2.0 or higher

Cordialement.
Michel

Commentaire de kiki650 le 15/03/2005 22:31:24

Je te remercie bcp, ca marche!
petit chef d'oeuvre...
Je leve mon panneau, et je met 10 !!

Commentaire de Garno le 06/05/2005 16:11:07

Est-ce que quelques uns d'entre vous l'on utiliser pour leur site / projet ?? Si oui j'aimerais bien voir les résultats :)

Commentaire de fuckya le 06/05/2005 20:21:33

Moi bientot peut etre ;)

Commentaire de CohenPi le 10/05/2005 10:04:02

Une petite erreur s'est glissée dans ton script :

$this->Colors['NoirFont'] = imagecolorallocatealpha($this->Img, 0, 0, 0, 0);

A remplacer par :

$this->Colors['FontNoir'] = imagecolorallocatealpha($this->Img, 0, 0, 0, 0);

Je sais c'est pas grand chose, mais c'est mieux si on veut pouvoir modifier la couleur des textes :p

Commentaire de PiouP le 28/06/2005 16:36:12

Une autre petite erreure dans la classe :

La fonction SetBorder($GraphWidth, $GraphColor):

function SetBorder($GraphWidth, $GraphColor){
$this->Graph_Border['BoderColor'] = $GraphColor; //et non $AreaWidth;
$this->Graph_Border['Border'] = $GraphWidth;
}

Commentaire de logon2006 le 17/07/2005 13:51:32

Salut,
quelqu'un a un exemple avec un script car moi, je n'y arrive pas :

<?php
include "config.php";
include "class.graphique3dbars.php";
$Graphique = new GraphiqueCommande;
$Graphique->SetBorder (1, "Noir");
$Graphique->SetGraphPadding (40, 10, 20, 20);
$Graphique->SetValueShow (true);
$larg = "500";
$Graphique->SetGraphSize (250, $larg);
$titre = "coucou !";
$Graphique->SetGraphTitle ($titre, "center", 3);
$Graphique->SetGraphFont (2, "FontNoir");
$Graphique->SetGraphDeepness(10);
$Graphique->SetGraphYScale (100);
$Graphique->SetBarsColor ("Mauve", "Noir");
@mysql_connect($dbServer, $dbUser, $dbPass) or die("Couldn't connect to database server: " . mysql_error());
@mysql_select_db($dbName) or die("Couldn't connect to database: " . mysql_error());
$sql = "SELECT viewed,image_id FROM images";
$req = mysql_query($sql) or die('Erreur SQL !'. $sql .mysql_error());
$i =0;
while($rs = mysql_fetch_assoc($req)){
$Data[$i] = $rs['image_id'];
$Values[$i] = $rs['viewed'];
$i++;}
$Graphique->SetGraphData($Values, $Data);
$Graphique->DrawGraphArea ('temp');
?>

Commentaire de joebuz le 17/07/2005 14:00:42

moi je l'utilise pour mon site voici ma page de stats :
http://60gp.ovh.net/~internetk/images/stats/

Commentaire de logon2006 le 17/07/2005 14:33:13

Salut joebuz,
tu n'aurais pas un petit script php d'exemple a me montrer que je comprenne comment l'utilisé ?
Merci d'avance !

Commentaire de BaubeGarlo le 10/08/2005 22:04:12

Bonjour

quand j'essai de faire fonction ces erreurs s'affichent.

J'ai consulter le post plus haut mais le fichier php.ini est semblable au deux ligne inscrit.

Notice: Undefined variable: AreaWidth in c:\program files\easyphp1-8\www\rss\graphic1\class.graphique3dbars.php on line 210

Fatal error: Call to undefined function: imagefontheight() in c:\program files\easyphp1-8\www\rss\graphic1\class.graphique3dbars.php on line 189

merci d'avance

Commentaire de BaubeGarlo le 11/08/2005 19:11:58

Re bonjour,

bon mon problème est ré gler merci quand même.

et en passant excellente source 10/10

Commentaire de xzibit0007 le 27/09/2005 10:56:13

BaubeGarlo, pourrais-tu expliquer comment tu as fait car j'ai le même genre d'erreurs :

Notice: Undefined variable: AreaWidth in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 210

Notice: Undefined index: FontNoir in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 317

Notice: Use of undefined constant i - assumed 'i' in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 426

Notice: Undefined index: FontNoir in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 429

Notice: Use of undefined constant i - assumed 'i' in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 426

Notice: Undefined index: FontNoir in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 429

Notice: Use of undefined constant i - assumed 'i' in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 426

Notice: Undefined index: FontNoir in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 429

Notice: Use of undefined constant i - assumed 'i' in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 426

Notice: Undefined index: FontNoir in C:\Inetpub\wwwroot\STATS\class.graphique3dbars.php on line 429


ETC.....

Merci d'avance.
PS : après toutes les erreurs ci-dessus, il m'affiche quand meme le graphique avec les bonnes données....

Commentaire de Anthomicro le 27/09/2005 12:55:03

Salut,

il faut définir la valeur des variables manuellement avant.

$AreaWidth='';

etc...

Commentaire de zizou33 le 10/11/2005 09:52:26

ça n'a pas marcher avec moi.Votre code genere deux messages d'erreures:
Notice: Undefined variable: AreaWidth in c:\program files\easyphp1-7\www\classe graphique\class.graphique3dbars.php on line 210

Fatal error: Call to undefined function: imagefontheight() in c:\program files\easyphp1-7\www\classe graphique\class.graphique3dbars.php on line 189
veuillez m'aider car j'ai vraiment besoin de ce code SVP

Commentaire de Tiger94 le 07/12/2005 21:04:36

Bonjour,

essaie de remplacer $AreaWidth par $GraphColor

puis j'ai placer le @ devant chaque imagestring(...

et ca fonctionne

Merci pour ce code

Commentaire de Malach le 10/04/2006 18:46:12

Bonjour,

Je n arrive pas a afficher les valeurs sur la gauche comme sur la capture, une idée

Commentaire de Malach le 10/04/2006 19:08:28

Résolu je suis bete

Commentaire de gabs77 le 19/05/2006 21:03:41

j avoue il est excellent ce script Garno t tro fort
je suis surpris a kel point on peut faire des trucs de barges avec PHP
par contre g un problème
g fait un formulaire pour les paramètres d'apparence uniquement pour le moment cad choix du titre, de la taille du graphique, des couleurs de bordures, des barres, etc ... g pris tous les critères mais le problème est que lorsque j'appuie sur le boutton d'envoie la page me donne d'abord le script par défaut et je dois actualiser la page pour voir les modifications !!!!
je ne pense pas ke j'ai besoin de poster le formulaire mais je vais postés à ce ke je pense la page la plus concernée par le pb
<?php
include("class.graphique3dbars.php");
$grosseur = !empty($_POST['gros_bord'])?$_POST['gros_bord']:1;
$coul_bord = !empty($_POST['coul_bord'])?$_POST['coul_bord']:"Noir";
$hauteur = !empty($_POST['haut'])?$_POST['haut']:300;
$largeur = !empty($_POST['larg'])?$_POST['larg']:400;
$deplacmt_g = !empty($_POST['dep_g'])?$_POST['dep_g']:50;
$deplacmt_d = !empty($_POST['dep_d'])?$_POST['dep_d']:10;
$deplacmt_h = !empty($_POST['dep_h'])?$_POST['dep_h']:20;
$deplacmt_b = !empty($_POST['dep_b'])?$_POST['dep_b']:20;
$visible = !empty($_POST['val'])?true:false;
$profond = !empty($_POST['prof'])?$_POST['prof']:10;
$interval = !empty($_POST['interv'])?$_POST['interv']:100;
$coul_bar = !empty($_POST['coul_bar'])?$_POST['coul_bar']:"Mauve";
$coul_boba = !empty($_POST['coul_bord_bar'])?$_POST['coul_bord_bar']:"Noir";
$titre = !empty($_POST['titre'])?$_POST['titre']:"coucou";
$position = !empty($_POST['posi'])?$_POST['posi']:"center";
$marge_h = !empty($_POST['marg_h'])?$_POST['marg_h']:3;
$coul_text = !empty($_POST['coul_text'])?$_POST['coul_text']:"FontNoir";
$tail_text = !empty($_POST['taille'])?$_POST['taille']:2;

$Graphique = new GraphiqueCommande;

$Graphique->SetBorder ($grosseur, $coul_bord); //grosseur de la bordure et couleur de la bordure du cadre
$Graphique->SetGraphPadding ($deplacmt_g, $deplacmt_d, $deplacmt_h, $deplacmt_b);  //emplacement gauche, emplacement droite , emplacement haut,emplacement bas du graph dans la cadre
$Graphique->SetValueShow ($visible); //Afficher oui ou non la valeur des barres
$Graphique->SetGraphSize ($hauteur, $largeur); //dimension du graphe en pixel (height, width)
$Graphique->SetGraphTitle ($titre, $position, $marge_h); //titre, align="???" , position en hauteur
$Graphique->SetGraphFont ($tail_text, $coul_text); //taille des caracteres , couleur des caracteres dans la liste
$Graphique->SetGraphDeepness($profond); //La profondeur du graphique
$Graphique->SetGraphYScale ($interval);  // une ligne a chaque interval ...
$Graphique->SetBarsColor ($coul_bar, $coul_boba); //couleur du contenu des barres, couleurs des contours

$Data = array(24, 100, 900, 450, 785, 230);  //valeurs numériques
$Values = array("Win98", "Win2200", "WinXP", "MacOsX", "Linux", "FreeBSD"); //titres des barres

$Graphique->SetGraphData ($Values, $Data);
$Graphique->DrawGraphArea ("temp");
?>

Commentaire de gabs77 le 21/05/2006 15:44:45

bonjour, j'ai apporter une petite différenciation au code
pour alterner les couleurs des barres 3D 1 sur 2 et la mise en place des textes en verticale

ligne 24 :
(ajout) var $Graph_BarColor1 = 'Jaune';
ligne 60 :
(modifier) /**
*
* Paramètrage de la color des barres impaires et bords
*
* @name SetBarsColor();
* @param (string) $Color ( Couleur des barres )
* @param (string) $BorderColor ( Couleur des bordures des barres )
*
*/
function SetBarsColor($Color, $BorderColor)
{
$this->Graph_BarColor = $Color;
$this->Graph_BarBorderColor = $BorderColor;
}

/**
*
* Paramètrage de la color des barres paires et bords
*
* @name SetBarsColor1();
* @param (string) $Color ( Couleur des barres )
* @param (string) $BorderColor ( Couleur des bordures des barres )
*
*/
function SetBarsColor1($Color, $BorderColor)
{
$this->Graph_BarColor1 = $Color;
$this->Graph_BarBorderColor1 = $BorderColor;
}

ligne 465 :
(modifier)   #- Base
$Base = array($X1, $Y2, $X1 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness, $X2 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness, $X2, $Y2);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Base, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Base, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Base, 4, $this->Colors[$this->Graph_BarBorderColor]);

#- Derrière
$Derriere = array($X1 + $this->Graph_Deepness,  $Y1 - $this->Graph_Deepness, $X2 + $this->Graph_Deepness, $Y1 - $this->Graph_Deepness, $X2 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness, $X1 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Derriere, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Derriere, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Derriere, 4, $this->Colors[$this->Graph_BarBorderColor]);

#- Gauche
$Gauche = array($X1, $Y2, $X1, $Y1, $X1 + $this->Graph_Deepness, $Y1 - $this->Graph_Deepness, $X1 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Gauche, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Gauche, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Gauche, 4, $this->Colors[$this->Graph_BarBorderColor]);

#- Devant
$Devant = array($X1, $Y1, $X2, $Y1, $X2, $Y2, $X1, $Y2);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Devant, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Devant, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Devant, 4, $this->Colors[$this->Graph_BarBorderColor]);

#- Droit
$Droit = array($X2, $Y1, $X2 + $this->Graph_Deepness, $Y1 - $this->Graph_Deepness, $X2 + $this->Graph_Deepness, $Y2 - $this->Graph_Deepness, $X2, $Y2);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Droit, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Droit, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Droit, 4, $this->Colors[$this->Graph_BarBorderColor]);

#- Haut
$Haut = array($X1, $Y1, $X1 + $this->Graph_Deepness, $Y1 - $this->Graph_Deepness, $X2 + $this->Graph_Deepness, $Y1 - $this->Graph_Deepness, $X2, $Y1);
if ($i % 2 ==0){imagefilledpolygon($this->Img, $Haut, 4, $this->Colors[$this->Graph_BarColor]);}
else{imagefilledpolygon($this->Img, $Haut, 4, $this->Colors[$this->Graph_BarColor1]);}
imagepolygon($this->Img, $Haut, 4, $this->Colors[$this->Graph_BarBorderColor]);

#-------------------------------------------------
#---modification ligne des textes en vertical

ligne 503 #- Écriture des valeurs
$TextWidth = imagefontwidth($this->Graph_FontSize) * strlen($this->Values[$i]);
$Left = ($X1 + ($BarSize / 2)) - ($TextWidth / 2) + 30;

imagestringup( $this->Img,
$this->Graph_FontSize,
$Left,
$Y2 + 90,
$this->Values[$i],
$this->Colors[$this->Graph_FontColor]
);

Commentaire de guisx00 le 09/12/2006 02:32:30

franchement bravo joli boulot je suis entrain de le modifie pour que tout les couleurs valeurs etc soit modifiable grace à une bdd.
Tu ma ouvert les yeux sur l'utilisation d'une classe j'avais pas vraiment assimiler se proceder et maintenant c'est regle merci bcp

@+++

Commentaire de deneus le 19/12/2006 13:55:21

Salut

Vraiment sympa la source :)
Et très jolie en prime.

Par contre, il y a quelques erreurs ...
- Un 'i' qui devrait être '$i'
- Une fonction qui utilise un parametre qui n'existe pas... (tu t es trompé dans le nom de ta variable)
- Et la couleur FontNoir qui ne marche pas.

Sinon, pour le reste c'est impec :)

ps: c est tous simple a corrigé, mais sa ne fait pas serieux :)
ps2: l'echelle a gauche du diagramme sort un peu du diagramme parfois :/

Bonne continuation

Commentaire de psykocrash le 16/03/2007 20:54:42

En plus des erreurs y'a une fonction que t'as oublié de mettre, c'est ShowBarsValues(). J'en ai fait une de substitution en attendant que tu mettes ta source à jour, la voici pour ceux que ça intéresse :

function ShowBarsValues()
{
if($this->Graph_ShowValues)
{
$NbLine = 10;

for($i = 0; $i < $NbLine; $i++)
{
$ScaleY = $this->Graph_Size['AreaHeight'] - (($this->Graph_Size['AreaHeight'] / $NbLine) * $i);
imageline( $this->Img,
$this->Graph_Padding['Left'],
$ScaleY,
$this->Graph_Padding['Left'] + $this->Graph_Size['AreaWidth'],
$ScaleY,
IMG_COLOR_STYLED);
$Valeur = ($this->Graph_BiggestValue / $NbLine) * ($i + 1);
imagestring($this->Img,
$this->Graph_FontSize,
10,
$ScaleY - 7,
$Valeur,
$this->Colors[$this->Graph_FontColor]);

}

}
}

Commentaire de psykocrash le 16/03/2007 20:57:52

Ah petit oublie : il faut aussi éditer la fonction DrawGraphArea() et y ajouter après $this->DrawAxis(); la ligne suivante :

$this->ShowBarsValues();

Voila. Enfin, j'avais un besoin spécifique qui était de ne pas enregistrer le graph dans un fichier mais de l'envoyer directement. Voici donc MA fonction DrawGraphArea() :

function DrawGraphArea()
{
$this->Img = imagecreatetruecolor($this->Graph_Size['OverallWidth'], $this->Graph_Size['OverallHeight']);
imagealphablending($this->Img, true);

for($i = 0; $i < count($this->Data); $i++)
if($this->Data[$i] > $this->Graph_BiggestValue)
$this->Graph_BiggestValue = $this->Data[$i];

$this->SetColorPalette();

$this->DrawBorders();
$this->WriteTitle();

$this->DrawAxis();
$this->ShowBarsValues();
$this->DrawBars();
header("Content-type: image/png");
imagepng($this->Img);
}

Note : désolé pour l'indentation mais CS la supprime automatiquement dans les commentaires...

Commentaire de psykocrash le 16/03/2007 21:00:50

Grrr décidément...

Poru ceux qui ont une image noire comme résultat, il faut aller dans la fonction SetColorPalette() et modifier le dernier paramètre des appels à la fonction imagecolorallocatealpha() qui définit le taux d'opacité (0 étant opaque et 127 étant transparent).

Cette fois, je crois que j'ai tout dit ^^

Commentaire de psykocrash le 16/03/2007 22:00:01

En testant le code, je me suis rendu compte que ma fonction ShowBarsValues() était complètement erronée. Voici donc la ma version finale qui fonctionne bien cette fois :p

function ShowBarsValues()
{
if($this->Graph_ShowValues)
{
$NbLine = 12;
$realHeight = $this->Graph_Padding['Top'] + $this->Graph_Size['AreaHeight'] + $this->Graph_Padding['Bottom'] + 1 + ($this->Graph_Deepness) + imagefontheight($this->Graph_FontSize);
$graphHeight = $this->Graph_Size['AreaHeight'];
$graphStart = $realHeight - ($this->Graph_Padding['Bottom'] + 1 + ($this->Graph_Deepness) + imagefontheight($this->Graph_FontSize));
$graphEnd = $graphStart - $graphHeight;
for($i = 1; $i <= $NbLine; $i++)
{
$ScaleY = $graphStart - (($graphHeight / $NbLine) * $i);
imageline( $this->Img,
$this->Graph_Padding['Left'],
$ScaleY,
$this->Graph_Padding['Left'] + $this->Graph_Size['AreaWidth'],
$ScaleY,
IMG_COLOR_STYLED);
$Valeur = ($this->Graph_BiggestValue / $NbLine) * $i;
imagestring($this->Img,
$this->Graph_FontSize,
10,
$ScaleY - 7,
$Valeur,
$this->Colors[$this->Graph_FontColor]);

}

}
}

Commentaire de fatitaleb le 21/06/2007 15:56:23

bonjour,
voila j reprie l'exeple mais en faite tout matche mais j un petit probleme c que je sais pas comment positionné le graphe sur ma page?? c bete


Merci

Commentaire de sidommou le 09/07/2007 10:04:29

ce code est génial. ça marche quoi que j'ai un petit problème. Le fond de l'image est noir. J'ai réussi à changer les barres en blanc mais je trouve que c pas une solution. Pouvez vous m'aider?
merci.

Commentaire de zlitus le 26/07/2007 18:02:32

Pas mal! J'aime beaucoup :)
10/10

Commentaire de mayak2005 le 06/12/2007 23:28:01

bonjour
svp j'ai eu ce problème
Fatal error: Call to undefined function: imagefontheight() in c:\program files\easyphp1-8\www\classe graphique\class.graphique3dbars.php on line 189

Commentaire de alvinp le 27/12/2007 12:29:27

Pour le problème du fond noir j'ai le même.

J'ai trouvé d'où cela venait pour moi (de la transparence des couleurs) :: Correction

$this->Colors['Blanc'] = imagecolorallocatealpha($this->Img, 255, 255, 255, 0);
$this->Colors['Noir'] = imagecolorallocatealpha($this->Img, 0, 0, 0, 100);
$this->Colors['BleuPale'] = imagecolorallocatealpha($this->Img, 100, 150, 255, 100);
$this->Colors['Vert'] = imagecolorallocatealpha($this->Img, 0, 150, 0, 0);
$this->Colors['Mauve'] = imagecolorallocatealpha($this->Img, 215, 115, 215, 0);
$this->Colors['Rouge'] = imagecolorallocatealpha($this->Img, 255, 0, 0, 0);
$this->Colors['Orange'] = imagecolorallocatealpha($this->Img, 240, 150, 40, 0);
$this->Colors['Jaune'] = imagecolorallocatealpha($this->Img, 255, 255, 0, 0);

Commentaire de twinux le 19/03/2008 16:00:53

J'ai un gros problème avec mon code, j'utilise cette class pour générer le graph http://pasqua.ovh.org/resultats.php si quelqu'un peut m'aider ça m'arrangerai bien, merci

Commentaire de niceman23 le 24/08/2008 05:25:36

Petit problème

Warning: Division by zero in c:\graphique\class.graphique3dbars.php on line 447

Si on mais rien et on regarde le graphique sa me donne cette erreur ligne 447 merci de m'aider.

Commentaire de niceman23 le 24/08/2008 05:33:35

Puis tu possibles d'ajouter maximum 10 barres les plus performantes . Par rapport au Data

Commentaire de belial1988 le 14/05/2009 23:13:23

Voici un petit exemple de ce que j'ai réussi a faire avec toute les correction et quelques modification a ma sauces ;)

http://img7.imageshack.us/img7/6398/screen7l.png

Commentaire de Aaron le 01/11/2010 16:07:25

Dommage que ca ne fonctionne pas en php5 :(((

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

statistiques ,graphique, php et mysql [ par mouss ] connaissez vous des exemples mettant en oeuvre une base de donnée mysql ,php permettant de créer des courbes, nuages de points sur une feuille html (p graphique, histogramme, diagramme... [ par jbardet ] Bonjour,Je souhaite créer des digramme de stat en php (+ exactement avec smarty) mais deja si j'y arrive en php ça le ferait!Mon problème:J'ai trouvé Inclure un graphique généré dynamiquement ds une page html ou php [ par cjulie24 ] CjulieHello,J'ai un p'tit souci et je suis à la recherche d'un bon samaritain !Voila, je suis en train de refaire un site et je dois inclure Inclusion d'un graphique dynamique ds une page WEB [ par cjulie24 ] CjulieHello,J'ai un p'tit souci et je suis à la recherche d'un bon samaritain !Voila, je suis en train de refaire un site et je dois inclure créer des codes barres [ par hardelgylls ] Bonjour je dois créer des codes barres en PHP et je ne sais pas comment faire, en effet sur Access il est possible de céer automatiquement des codes b Graphique php, imageTTFBBox et imageTTFText [ par DarkSchneider ] salut tous le monde,C'est après deux et demi de bataille avec ce script que je vient déposer les armes ici. Le but de ce script a pour but de faire af éditeur graphique html/php sous linux [ par eax ] salutje ch un éditeur html, php, javascript graphique genre dreamweaver sous linux Sylvain [email] [<a href="http://www.ea Php : le bon choix ? [ par Neglaus ] Bonjour à tous voila ma question : je souhaite créer un module de gestion de statistique sous PHP avec des sorties sur graphiques. Mais attention il s Php : ai je fais le bon choix?? [ par Neglaus ] Bonjour à tous voila ma question : je souhaite créer un module de gestion de statistique sous PHP avec des sorties sur graphiques. Mais attention il s conception d'un graphique boursier en php [ par jeremy77 ] Bonjour, je suis a la recherche de sources pour la conception de graphique boursier en php comme ce qu'on trouve dans les site de bourse (je suis débu


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,153 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales