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 :

[Artichow] Dessiner une courbe avec plusieurs couleurs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Points : 38
    Points
    38
    Par défaut [Artichow] Dessiner une courbe avec plusieurs couleurs
    Bonjour,
    j'utilise ARTICHOW , j'espere que vous connaissez.
    J'essai de faire un graphe qui change de couleur selon les valeurs.
    Exemple:
    j'ai une courbe qui represente des moyennes.
    Si la courbe depasse 10 elle est en vert , si elle descend en dessous elle est en rouge.
    Pouvez-vous m'aider ? merci

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 382
    Points
    5 382
    Par défaut
    Salut,

    Il me semble que la courbe n'a qu'une seule couleur de bout en bout.
    Si j'ai bien compris; pour faire ce que tu veux, il faut que tu modifies le code même d'artichow.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Points : 38
    Points
    38
    Par défaut
    changer le code d'artichow qd meme??
    c'est bizarre qu'il n'y ai pas moyen!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    Je ne connais pas ARTICHOW, mais a mon avis c'est faisable.

    J'imagine que tu récupère tes résultats d'une base de données?
    Si oui, je pense quand définissant deux fois la courbe avec un condition c'est possible, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(...){
      ... //parametre de la courbe rouge
    }else{
      ... //parametre de la courbe verte
    }

    Pour ma part j'utilise JpGraph et c'est possible à faire.

    http://www.aditus.nu/jpgraph/

    Mets nous ton code aussi pour que l'on puisse t'aider plus facilement

  5. #5
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 382
    Points
    5 382
    Par défaut
    Salut,

    Avec JpGraph, tu peux commencer une courbe avec une couleur, en changer plusieurs fois en cours de route ?
    Cette API m'a l'air d'etre plus sympa (fonctionnelement parlant) qu'Artichow. Dommage que je n'ai pas le temps d'y consacrer un peu de temps pour voir si je remplace Artichow.

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Une courbe ne peut avoir qu'une seule couleur puisqu'elle représente une entité à elle seule. (logique)

    Si tu veux avoir plusieurs couleurs, c'est plusieurs courbes avec des couleurs différentes que tu dois dessiner et concaténer.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par fregolo52 Voir le message
    Salut,

    Avec JpGraph, tu peux commencer une courbe avec une couleur, en changer plusieurs fois en cours de route ?
    Cette API m'a l'air d'etre plus sympa (fonctionnelement parlant) qu'Artichow. Dommage que je n'ai pas le temps d'y consacrer un peu de temps pour voir si je remplace Artichow.
    Non pas en cours de route, seulement la couleur générale de la courbe.

    Mais tes moyennes sont calculées par rapport à quoi, je m'explique, cela représente les moyennes des elèves par exemple ?

    Si tu fais des courbes pour un truc du même genre (je parle des élèves) tu peux aussi faire avec des histogrammes, et pour chaque batons de l'histogramme (ou un baton représente un élève), tu peux vérifier si la valeur est au dessus de 10, si oui t'affiche en vert, si non t'affiche en rouge.

  8. #8
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 382
    Points
    5 382
    Par défaut
    J'ai peut-etre mal compris la question de m_jaz3.
    En lisant, sont message, j'ai compris qu'il veut que la même courbe soit verte au dessus de 10 et rouge en dessus.

    Sinon, affecter une couleur à la courbe suivant sa moyenne, c'est facile à faire, même avec Artichow, il suffit de faire un setColor(rouge ou vert).

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    ouais sinon comme le dit fregolo52, affecter une couleur à la courbe en fonction de la moyenne de la courbe.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Points : 38
    Points
    38
    Par défaut
    excusez moi mais j'ai pas tt saisi.
    Dabord j'aimerais garder la courbe au lieu de l'histogramme.
    Ensuite , c'est ce qu'a compris fregolo52 masi j'ai pas compris comment faire avec la fontion dont il m'a parlé.
    Pouvez-vous m'en dire plus svp
    merci

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par m_jaz3 Voir le message
    excusez moi mais j'ai pas tt saisi.
    Dabord j'aimerais garder la courbe au lieu de l'histogramme.
    Ensuite , c'est ce qu'a compris fregolo52 masi j'ai pas compris comment faire avec la fontion dont il m'a parlé.
    Pouvez-vous m'en dire plus svp
    merci
    Tu récupère toutes les valeurs de ta courbe, tu en fais une moyenne, ensuite, dans la partie du code qui définit ta couleur de courbe, tu fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if($moyenne > 10){
      $graph->SetColor('green');
    }else{
      $graph->SetColor('red');
    }
    Par contre met à la place de '$graph->SetColor(...) l'équivalent pour ARTICHOW

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Points : 38
    Points
    38
    Par défaut
    je ne vois pas pk je dois calculer la moyenne.
    J'ai mis le code que j'ai fais qui me ressors une courbe tjrs en rouge.
    Il faut savoir que la premiere valeurq ue j'ai est en dessous de 10

    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
     
    <?php
    session_start();
    mysql_connect('localhost','root','');
    mysql_select_db('ecoutes');
    $requete_graphe="SELECT moyenne_20 FROM grille WHERE nom ="."'$_GET[nom_cdc]'"."and prenom ="."'$_GET[prenom_cdc]'";
    $resultat_graphe =mysql_query($requete_graphe); 
    //$ligne_graphe =mysql_fetch_array($resultat_graphe);
       require_once "../Artichow/LinePlot.class.php";
       $rouge= new Color(200, 0, 0);
       $vert= new Color(0, 200, 0);
       $graph = new Graph(400, 400);
       $graph->setAntiAliasing(TRUE);
       $i=0;
       $values =array();
       $grille =array();
       $vert= new Color(0, 200, 0);
       $rouge= new Color(200, 0, 0);
     
    while($ligne_graphe=mysql_fetch_array($resultat_graphe))   
    {
    	$values[$i]=$ligne_graphe[0];
    	$grille[$i]="GRILLE".($i+1);
    	$i++;
    }
    $j=0;
       $plot = new LinePlot($values);
     
     
    while ($j<=count($values[$j]))
    {
    if ($values[$j]>=10)
    {
      $plot->setColor($vert);
      $j++;
    }
    else 
    {
    $plot->setColor($rouge);
    $j++;
    }
    }
     
       $plot->label->set($values);
       $plot->label->move(0, -23);
     
     
    $plot->label->setBackgroundGradient(
          new LinearGradient(
          new Color(250, 250, 250, 10),
          new Color(200, 0, 0, 30),
            0
          )
      );
     
     
       $plot->yAxis->setLabelPrecision(1);
       $plot->xAxis->setLabelText($grille);
     
     
       $graph->add($plot);
       $graph->draw();
     
    ?>

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Tu dois faire la moyenne générale si tu prends une courbe, car tu ne peux pas faire en sorte qu'une seule partie de la courbe soit d'une couleur et l'autre d'une couleur différente, soit la courbe est rouge, soit verte, sinon il faudrait mieux que tu utilise des histogrammes.

  14. #14
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 382
    Points
    5 382
    Par défaut
    A priori vu ton code, la couleur de la courbe correspond à la dernière note.

    A mon avis il faut faire comme a dit ThomasR. Tu dois faire des morceaux de courbe et les grouper.
    Base toi sur l'exmple : http://www.artichow.org/code?file=line-007

Discussions similaires

  1. "sectionner" une courbe avec des couleurs
    Par Angel30 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 26/05/2009, 17h43
  2. Réponses: 4
    Dernier message: 23/04/2008, 17h39
  3. Réponses: 3
    Dernier message: 20/02/2008, 18h13
  4. Dessiner une image avec une couleur transparente
    Par FabaCoeur dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 10/02/2008, 21h38
  5. dessiner une courbe avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 9
    Dernier message: 28/09/2006, 23h05

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