Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > JpGraph
JpGraph Forum d'entraide pour la bibliothèque JpGraph permettant de manipuler des images en PHP. Avant de poster -> tutoriels JpGraph
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2007, 17h44   #1
Membre du Club
 
Inscription : octobre 2006
Messages : 59
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : octobre 2006
Messages : 59
Points : 40
Points : 40
Par défaut [JpGraph] Plusieurs graphes sur une même page

Bonjour,

Le problème est simple, je dois afficher sur une page une multitude de graphique portant sur le même thème mais avec des données différentes.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
   $graph = new Graph(800,500);    
    $graph->SetFrame(false);//bordure graphique
    $graph->SetScale("textlin",0,10);
    $graph->SetAxisStyle(AXSTYLE_SIMPLE); 
    $graph->SetBackgroundGradient('#EFF7F9','#FFFFFF',GRAD_MIDVER,BGRAD_PLOT); 
    $graph->xaxis->SetColor('#444444'); // couleur de la police 
    $graph->xaxis->SetFont(FF_TREBUCHE,FS_NORMAL,10); // font family, size ...
    $graph->SetMarginColor('#EFF7F9'); // couleur arriere plan 
    $graph->Set90AndMargin(480,20,45,85);//taille texte gauche, marge droite, marge haut, marge bas
    $graph->xaxis->SetTickLabels($question);
    $graph->title->SetFont(FF_TREBUCHE,FS_BOLD,12);
    $graph->title->Set($nom_dim);
    $graph->title->SetColor('#4CA3BC');
 
    $graph->legend->Pos(0.3,0.87); 
    $graph->legend->SetFont(FF_TREBUCHE,FS_NORMAL,9); 
    $graph->legend->SetLayout(LEGEND_HOR); 
 
    $bplot1 = new BarPlot($autoeval); // reponse pour 1er statut ( auto eval )
    $bplot1->SetLegend("Auto-évalué");
    $bplot2 = new BarPlot($collabo); // reponse pour 2nd statut ( collabo )
    $bplot2->SetLegend("Collaborateurs");
    $bplot3 = new BarPlot($superieur);
    $bplot3->SetLegend("Supérieurs");
    $bplot4 = new BarPlot($pairs);
    $bplot4->SetLegend("Pairs");
    //$bplot1->SetPattern(PATTERN_STRIPE1,'#058DE8' ); //Diagonales dans barre
    $bplot1->SetFillGradient("#F36B08","#F8BD08",GRAD_RIGHT_REFLECTION);
    $bplot2->SetFillGradient("#46A6C1","#82E0FA",GRAD_RIGHT_REFLECTION);
    $bplot3->SetFillGradient("#9D9E9A","#F2F5EC",GRAD_RIGHT_REFLECTION);
    $bplot4->SetFillGradient("#DC56C4","#F8ABEA",GRAD_RIGHT_REFLECTION);    
 
    $graph->legend->SetFrameWeight(0); 
    $graph->legend->SetLineSpacing(15); //espacement legende
    $gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3,$bplot4));
    $gbarplot->SetWidth(0.8);
    $graph->Add($gbarplot);
    $graph->Stroke('_image.png');    
    echo "<center><img src=\"_image.png?v=$n\"></center><br />";
 
//$n  est issue de :  $n=rand(100, 9999);
Quand je laisse le code s'éxécuter, l'image généré correspond au dernier enregristrement. Par contre si je mets un " break; " juste apres la balise de l'image, l'image affichée sera simplement le 1er enregistrement, j'ai affiché pour chaque graphique les calculs avec print_r(). Bref le souci que j'ai viens, je pense, du cache et je ne vois pas comment résoudre le problème.
Dam1en est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 22h38   #2
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
Bonjour,

Code :
echo "<center><img src=\"_image.png?v=$n\"></center><br />";
Cette instruction pose un problème.

Soit tu mets dans ton attribut src le nom du script php qui génère l'image par exemple :

Code :
echo "<center><img src=\"genereImg.php?v=$n\"></center><br />";
genereImg.php est ton script php.

Soit, comme tu l'as fait, ton script qui génère le graphe enregistre sur disque l'image. Dans ce cas il te faut bien récupérer les paramètres pour chaque graphique, génrérer des images avec un nom unique à chaque fois et ensuite, dans le même script, afficher tes images par exemple :

Code :
echo "<center><img src=\"image_$imgIndex.png?\"></center><br />";
En espérant avoir été clair...

@++
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 23h13   #3
Membre du Club
 
Inscription : octobre 2006
Messages : 59
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : octobre 2006
Messages : 59
Points : 40
Points : 40
merci beaucoup c'est exactement ca que je voulais, le seul petit inconvénient c'est qu'une image est créée dans le dossier d'hebergement.
Dam1en est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h48.


 
 
 
 
Partenaires

Hébergement Web