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] Affichage de courbes


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut [JpGraph] Affichage de courbes
    Bonjour,

    J'avance pas mal dans mon projet (pour ceux qui ont déjà lu des messages provenant de moi..). J'ai un petit souci afin d'afficher des courbes. J'ai réussi à obtenir la structure que je voulais pour une table, la voici en utilisant la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     print_r ($caracteristic_array);
    :
    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
     
    Array
    (
        [Q01] => Array
            (
                [2008-06-26 16:11:00] => 2100
                [2008-06-26 16:13:00] => 2100
                [2008-06-26 16:29:00] => 2100
                [2008-06-26 16:30:00] => 2100
                [2008-06-26 16:37:00] => 2100
            )
     
        [Q02] => Array
            (
                [2008-06-26 16:11:00] => 2200
                [2008-06-26 16:13:00] => 2200
                [2008-06-26 16:29:00] => 2200
                [2008-06-26 16:30:00] => 2200
                [2008-06-26 16:37:00] => 2200
            )
     
    )
    ps: ne portez pas attention aux valeurs, ce sont des valeurs fictives..

    Je veux maintenant afficher sur le même graphe les courbes de tous mes capteurs (donc ici par exemple Q01 et Q02) avec toutes les dates.. mais je n'y arrive pas! Voilà mon code, si quelqu'un peut me guider pour me dire ce qui pose problème! Merci!!

    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
     
    foreach($name as $v){
     
    	$p[$v] = new LinePlot($caracteristic_array[$v]);
     
    	$r=rand(0,255);$g=rand(0,255);$b=rand(0,255); 
    	$p[$v] ->SetColor(array($r,$g,$b));
     
    	$p[$v] ->SetLegend("$caracteristic [$v]");
     
    	$graph->SetFrame(true, '#efeffa');
     
    	$graph->Add($p[$v]);
     
    }

  2. #2
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Il n'y a que les dates qui n'apparaissent pas ou les courbes non plus ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai oublié de préciser que je chargeais mon tableau de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while ($row = mysql_fetch_assoc($pg_result)) {
    $caracteristic_array[$v][$d] =($row["$caracteristic"]);
    Avec ceci mon graph ne s'affiche pas du tout, j'ai un message d'erreur comme quoi il ne peut pas faire d'autoscale vu qu'apparement mes valeurs en Y sont toutes nulles...La j'avoue je ne comprends pas!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Ne pourrais-tu pas plutôt réaliser 2 tableaux, 1 pour les ordonnées et 1 pour les abscisses :
    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
     
    Array_y
    (
        [Q01] => Array
            (
                [0] => 2100
                [1] => 2100
                [2] => 2100
                [3] => 2100
                [4] => 2100
            )
     
        [Q02] => Array
            (
                [0] => 2200
                [1] => 2200
                [2] => 2200
                [3] => 2200
                [4] => 2200
            )
     
    )
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Array_x
    (
                [0] => 2008-06-26 16:11:00
                [1] => 2008-06-26 16:13:00
                [2] => 2008-06-26 16:29:00
                [3] => 2008-06-26 16:30:00
                [4] => 2008-06-26 16:37:00
    )
    ainsi mettre la ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $graph->xaxis->SetTickLabels($caracteristic_array_x);
    $p[$v] = new LinePlot($caracteristic_array_y[$v]);

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai déjà essayé cette possibilité, mais le gros problème est que si pour un capteur une valeur n'est pas mesurée à une date, la case correspondante n'est pas vide ou nulle, on décale juste les valeurs..ce qui fait que les valeurs sont décalées. Merci pour ta proposition,si tu en as d'autres n'hésite pas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Je ne sais pas comment tu fais le relevé de tes mesures mais si tu le fais en fonction du temps, tu peux mettre une valeur NULL si tu n'as pas obtenu de mesure. Ensuite tu fais une moyenne pondérée avec les données autour de ta valeur NULL.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Cette manip marche dans certains cas c'est vrai! Mais il y a un cas où il ne marche pas et c'est celui auquel je m'intéresse: lorsque l'on change un capteur:
    par exemple on remplace T01 par Q01, je modifie alors mon .txt contenant les noms des capteurs présents.
    Lorsque j'interroge ma BD pour un période suffisament longue, le problème est là! Je ne peux pas mettre de valeur nulle. Mais je vais utiliser ta méthode lorsqu'on enlève juste le capteur.

Discussions similaires

  1. affichage de Courbe
    Par julio81 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 15/05/2008, 16h10
  2. [JpGraph] Problème d'affichage de courbes
    Par brindherbe86 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 07/05/2008, 17h35
  3. [JpGraph] Affichage d'un graphe dans une page php
    Par sqlnoob dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/02/2008, 14h16
  4. Accelerer l'affichage des courbes en VB6.
    Par maritime dans le forum VB 6 et antérieur
    Réponses: 50
    Dernier message: 28/04/2007, 10h41
  5. Probleme d'affichage de courbe
    Par cedre22 dans le forum Langage
    Réponses: 12
    Dernier message: 21/02/2006, 13h11

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