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 05/06/2008, 13h54   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 49
Points : 13
Points : 13
Par défaut [JpGraph] 2 axes en Y

Bonjour,

comment faire pour avoir 2 axes en Y, j'ai du mal à saisir les différents tutos sur le net :

voici mon code pour un graph normal (très basic) :

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
 
...
$ydonnees = array();
while ($row = mysql_fetch_assoc($result)) 
$ydonnees[] = $row['pc']; 
 
$ydonnees2 = array();
while ($row2 = mysql_fetch_assoc($result2)) 
$ydonnees2[] = $row2['user']; 
 
$graphique = new Graph(1200,250,"auto");
 
 
// instance de la classe LinePlot, la variable $lineplot est affectée par l'objet créé
// ce lineplot contient les points définis dans le tableau $ydonnees
$lineplot = new LinePlot($ydonnees);
$lineplot2 = new LinePlot($ydonnees2);
 
// cette méthode spécifie le zone du graphique dans l'image avec des coordonnées
$graphique->SetScale("textlin");
 
// cette méthode définit la couleur de la ligne du lineplot
$lineplot->SetColor("blue");
$lineplot2->SetColor("green");
 
// ajoute le lineplot dans le graphique
$graphique->Add($lineplot);
$graphique->Add($lineplot2);
 
// trace the graphique
$graphique->Stroke(); 
 
 
mysql_close($link); 
 
?>
les tableaux avec les valeurs sont générés dynamiquement avec des requêtes sql "$ydonnees" et "$ydonnees2". Actuellement, j'ai bien 2 courbes mais je n'ai pas les axes en Y. Quelles sont les fonctions à inclure ?

Merci
cyberps2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 14h45   #2
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 49
Points : 13
Points : 13
bon c'est ok voici mon code final :

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
<?php
 
// nom du fichier : dessiner_graphique.php
include("jpgraph.php"); // inclut la librairie principale
include("jpgraph_line.php"); // inclut la librairie des lineplots
 
$link = mysql_connect("localhost", "indic", "indic")
    or die("Impossible de se connecter : " . mysql_error());
$db_selected = mysql_select_db('indic', $link);
if (!$db_selected) {
   die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
 
$year=$_POST['date'];
 
$result = mysql_query('SELECT pc from compare where year(date) = "'.$year.'"');
if (!$result) {
    die('Requête invalide : ' . mysql_error());
}
 
$result2 = mysql_query('SELECT user from compare where year(date) = "'.$year.'"');
if (!$result2) {
    die('Requête invalide : ' . mysql_error());
}
 
 
$ydonnees = array();
while ($row = mysql_fetch_assoc($result)) 
$ydonnees[] = $row['pc']; 
 
$ydonnees2 = array();
while ($row2 = mysql_fetch_assoc($result2)) 
$ydonnees2[] = $row2['user']; 
 
 
$graphique = new Graph(700,250,"auto");
 
 
// instance de la classe LinePlot, la variable $lineplot est affectée par l'objet créé
// ce lineplot contient les points définis dans le tableau $ydonnees
$lineplot = new LinePlot($ydonnees);
$lineplot2 = new LinePlot($ydonnees2);
 
// cette méthode spécifie le zone du graphique dans l'image avec des coordonnées
$graphique->SetScale("textlin");
$graphique->SetMarginColor('white');
 
// cette méthode définit la couleur de la ligne du lineplot
$lineplot->SetColor("blue");
$lineplot->SetLegend('PC');
$lineplot2->SetColor("red");
$lineplot2->SetLegend('User');
 
// ajoute le lineplot dans le graphique
$graphique->Add($lineplot);
$graphique->AddY2($lineplot2);
 
// ajout du 2 axe des ordonnees
$graphique->SetY2Scale( "lin"); 
 
// trace the graphique
$graphique->Stroke(); 
 
mysql_close($link); 
 
?>
C'est puissant jpgraph !
cyberps2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2008, 11h26   #3
Membre à l'essai
 
Inscription : octobre 2008
Messages : 35
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 35
Points : 24
Points : 24
j'ai testé ton exemple, c'est bien, mais comment distingue tu à quoi correspond l'axe des y sur ta droite de celui sur ta gauche?
ça serait bien d'indiquer sur ton graphique au niveau de chaque axe le nom correspondant.
noxia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2008, 10h25   #4
Membre à l'essai
 
Inscription : octobre 2008
Messages : 35
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 35
Points : 24
Points : 24
j'arrive à afficher correctement deux courbes sur un même graphique avec jpgraph, et à reprséenter les deux axes des ordonnées correspondant, mais je voudai pouvoir afficher ces deux courbes avec LA MEME ECHELLE.
Comment faire?
Par ce qu'actuelement j'ai deux courbes qui sont sur le même graphique mais qui ne sont pas du tout proportionnés.

mon code:
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
....
$effectifhomme=creertableau('prod2',$superrequete1,2);
$effectiffemme=creertableau('prod2',$superrequete2,2);
$age=creertableau('prod2',$superrequete2,1);
 
 
$graphique = new Graph(600,400,"auto");
$graphique->img->SetMargin(50,50,100,50); 
$graphique->title->Set("-- Effectif des Ages Hommes-Femmes chez Gedimat --");
$graphique->SetScale("textlin");
$graphique->SetMarginColor('white');
 // instance de la classe LinePlot, la variable $lineplot est affectée par l'objet créé
// ce lineplot contient les points définis dans le tableau $ydonnees
$lineplot = new LinePlot($effectifhomme);
$lineplot2 = new LinePlot($effectiffemme);
// cette méthode définit la couleur de la ligne du lineplot
$lineplot->SetColor("blue");
$lineplot->SetLegend('Hommes');
$lineplot2->SetColor("red");
$lineplot2->SetLegend('Femmes');
//*******************************AXE DES ABSCISSES
$graphique->xaxis->SetTextLabelInterval(10);
$graphique->xaxis->title->Set("Age");
$graphique->xaxis->SetTickLabels($age);
//$graphique->xaxis->SetTextTickInterval(10,0);
//****************************AXE DES ORDONNEES
//$graphique->yaxis->SetTextLabelInterval(100);
$graphique->yaxis->title->Set("Effectif");
//$graphique->yaxis->SetTickLabels($effectifhomme);
// ajoute le lineplot dans le graphique
$graphique->Add($lineplot);
$graphique->AddY2($lineplot2);
// ajout du 2 axe des ordonnees
$graphique->SetY2Scale( "lin"); 
// trace the graphique
$graphique->Stroke(); 
?>
noxia 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 02h00.


 
 
 
 
Partenaires

Hébergement Web