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

R Discussion :

formulation boucle couleur graphe


Sujet :

R

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Points : 51
    Points
    51
    Par défaut formulation boucle couleur graphe
    Bonjour,

    je cherche à faire un graphe avec des points x,y et dont la couleur est définie par une valeur de z.

    Voilà ce que j'ai écrit pour faire un test sachant que des valeurs de z sont > 2 et d'autres > à 2

    if (z[i] > 2) {col="red"} else {col="blue"} Seulement, mes points (ou ma courbe) sortent tous de la même couleur: ici bleu alors que la première valeur de z est > 2.

    Quelqu'un aurait-il donc plus de compétences que moi pour formuler une boucle qui assigne une couleur à mon point en fonction de sa valeur.

    Merci d'avance

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonjour,

    quelque chose comme cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x <- rnorm(10)
    y <- rnorm(10)
    z <- runif(10, 0, 4)
     
    plot(x,y, col=ifelse(z<2, "blue", "red"))
    Bonne journée

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Super Merci!! :-)

    On frise l'objectif.
    N'étant que novice j'ai du mal à imaginer une extension de cette formule pour plusieurs classes de couleurs.

    Avec ifelse, on ne peut se permettre qu'une seule alternative?

    Si je veux faire z = 0 ==> col = "black",
    0 < z < 1 ==> col = "blue",
    1 < z < 2 ==> col ="red"
    ... et ainsi de suite,

    puis-je toujours utiliser ifelse ??

    Si oui comment?
    Sinon, comment écrire cette fonction?

    Merci!!

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    En fait, cela dépend du nombre de "classes" que vous souhaitez définir pour les valeurs de z.

    On peut faire des ifelse imbriqués.

    En admettant que vous n'ayez que 3 classes (z=0, 0<z<=1, 1<z<=2), cela donnerait sur un exemple rapide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    x <- rnorm(10)
    y <- rnorm(10)
    z <- runif(9, 0, 2)
    z[10] <- 0
     
    plot(x,y, col=ifelse(z==0, "green", ifelse(z<=1, "red", "blue")))
    Bonne continuation

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Merci beaucoup,

    c'est exactement ce que je cherchais.
    En revanche, je peine à faire plus de trois classes.

    Dans l'idée mes classes seraient:

    -1 < z < 0 ==> col ="black"

    0 < z < 1 ==> col = "turquoise"

    1 < z < 2 ==> col = "yellow"

    2 < z < 3 ==> col ="orange"

    z > 3 ==> col = "red"

    Est-ce possible de démultiplier les classes avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     col = ifelse(...), ifelse(...)
    Je n'en ai pas l'impression, mais cela vient peut être de mon manque de pratique.

    Merci pour votre aide.

    Bonne journée

  6. #6
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 147
    Points
    147
    Par défaut
    ifelse c'est bien quand il y a 2 conditions, après on peut les combiner mais c'est pas simple à lire et à comprendre.

    Le mieux est de faire comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x=rnorm(1000,0,5)
    col = rep(NA,length(x))
    col[x < -1]="black"
    col[x > 0 & x < 1]="cyan"
    col[x > 1 & x < 2]="yellow"
    col[x > 2 & x < 3]="orange"
    col[x > 3]="red"
    plot(x,col=col)

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    C'est exactement ça!
    Merci beaucoup.

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

Discussions similaires

  1. Changer valeur formule boucle vba multisheet
    Par baleiney dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/03/2012, 09h54
  2. Probleme boucle FOR +graphe
    Par larose29 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 23/10/2009, 12h22
  3. Gestion couleur graph en anneau
    Par Saori dans le forum Excel
    Réponses: 1
    Dernier message: 25/03/2009, 12h53
  4. [RECH] Formule avec couleur
    Par roukmoot dans le forum Excel
    Réponses: 2
    Dernier message: 22/10/2008, 14h51
  5. [CR ?] Formule pour couleur de remplissage d'un champ
    Par leloup84 dans le forum Formules
    Réponses: 14
    Dernier message: 05/03/2008, 08h27

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