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] Problème création de graph


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut [JpGraph] Problème création de graph
    bonjour,

    J'ai un souci avec mon graph il me met une erreur : l'image contient une erreur pourtant mon code est simple mais je ne vois pas cette fichue erreur

    voici le 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
    <?php 
    $xy = $this->data2;
     
    require_once ('jpgraph/jpgraph.php');
    require_once ('jpgraph/jpgraph_bar.php');
     
    $graph = new Graph(640,480,'auto');
     
    $graph->SetScale("textlin");
     
    $plot = array();
     
    foreach ($xy as $key => $value){
        $bplot = new BarPlot($xy[$key]);
        $plot[] = $bplot;
    }
    $gplot = new GroupBarPlot($plot);
    $graph->add($gplot);
     
    $graph->Stroke();
     
     
    ?>
    Voici un var_dump de xy :

    array
    'Exemple' =>
    array
    'a' => string '10' (length=2)
    'b' => string '15' (length=2)
    'c' => string '20' (length=2)
    'd' => string '25' (length=2)
    'e' => string '30' (length=2)
    'Jeu test 2' =>
    array
    'a' => string '14' (length=2)
    'b' => string '13' (length=2)
    'c' => string '12' (length=2)
    'd' => string '15' (length=2)
    'e' => string '16' (length=2)
    Merci de m'aider à trouver une solution

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Quelle erreur exactement ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    L'erreur exactement c'est que jpgraph n'aime pas les labels a,b,c,d,e
    et préfère 1,2,3,4,5

    le problème c'est que dans ma base de donnée les légendes ne sont pas des integer comment palier à ce problème ?

    Par exemple si j'ai des labels en integer ça marche sinon les autres labels genre "one,two,three" ou "etape 1,etape 2,etape 3" ou "a,b,c,d" alors il y a une erreur dans le jpgraph

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    avec array_values tu enlèves les clés.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci pour le truc du array_value mais comment je peut récupérer mes labels ?

    N'y aurait-il pas une meilleures solution que celle ci pour mes labels ?

    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
     
        public function testAction(){
            $id = 4;
            $data = $this->db->query("SELECT v.nom, v.val, m.nom as mesure FROM indicateur_mesure im JOIN mesure m ON im.idMesure = m.idMesure JOIN valeur v ON m.idMesure = v.idMesure WHERE idIndicateur = $id")->fetchAll();
            $xy = array();
            $i=0;
            $text = "";
            $label = array();
            foreach ($data as $value) {
                $text=$value['mesure'];
                $xy[$value['mesure']][$value['nom']] = $value['val'];
                $label[] = $value['nom'];
            }
            $this->view->data2 = $xy;
            $this->view->label = array_unique($label);
     
        }

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    avec array_keys tu réccupères les clés.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Oui merci mais je ne récupère pas les bonnes clés en faisant un array_keys, car mon array possède deux keys, $xy = array([Exemple]=>array([A]=>10))
    Si je fais echo array_keys($xy); ça me retourne exemple alors que mon key que je voudrais est A.

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $keys = array_keys($arr['exemple']);

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci encore, mais étant jpGraph étant géré avec une base de données je ne peut pas me contenter de juste marquer exemple dans le array, les noms change fréquemment, il suffit que la mesure s'appel test pour que le code ne fonctionne plus.

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $metric = "exemple";
    $keys = array_keys($arr[$metric]);

Discussions similaires

  1. [JpGraph] JPGraphe:Probléme d'affichage de graphe et export pdf
    Par farhaenis dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/07/2011, 10h44
  2. Problème : création de graphe
    Par Elegans dans le forum C
    Réponses: 2
    Dernier message: 01/05/2011, 20h46
  3. Problème de création de graph
    Par Cartman.inc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2008, 15h33
  4. [BO 6.1] Problème de création de graphs
    Par tang121 dans le forum Deski
    Réponses: 4
    Dernier message: 25/01/2008, 17h35
  5. [JpGraph] Problème de graphe
    Par Syl91 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/09/2006, 13h51

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