IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[JpGraph] 2 axes en Y


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut
    bon c'est ok voici mon code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    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.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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(); 
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JpGraph] Inverser l'ordre de l'axe des coordonnées
    Par Bonjovi51 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 05/12/2008, 19h27
  2. [JpGraph] Axe des ordonnées
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/12/2007, 23h48
  3. [JpGraph] Problème avec l'axe des X
    Par shkyo dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/08/2007, 10h42
  4. [jpgraph]erreur sur les axe y
    Par scorpking dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/07/2006, 15h41
  5. [JpGraph] Problème avec l'axe des abscisses ?
    Par MaTHieU_ dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 19/07/2006, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo