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 :

[ggplot2] Donner un nom aux points


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut [ggplot2] Donner un nom aux points
    Bonjour,

    J'ai un graphe représentant deux ensembles de points v1 et v2 et je voudrais donner aux points un nom, le nom correspondant à la colonne id du tableau dt (Chaque points des deux ensembles ont le même noms).

    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
    dt <- data.frame("id" = paste0("id", 1:5),
                     "v"  = sample(11:20, 5),
                     "v1" = sample(9:18, 5),
                     "v2" = sample(6:15, 5))
     
    p <- ggplot(dt, aes(x=v))+ #, label=id)) +                   
      geom_point(aes(y=v1, colour="v1")) +  # first layer
      #geom_text(aes(label=id),hjust=0, vjust=0) +
      geom_point(aes(y=v2, colour="v2")) +  # second layer
      #geom_text(aes(label=id),hjust=0, vjust=0) +
      geom_abline() +
      labs(title = "", x = "x", y = "y", subtitle = "") + 
      scale_color_manual(name = element_blank(),
                         labels = c("v1", "v2"),
                         values = c("v1" = "green", "v2" = "red")) +
      theme(legend.position = "bottom")

  2. #2
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    en utilisant aussi library(tidyr) je ferai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    g <- dt %>% pivot_longer(cols = 3:4) %>%
     ggplot(aes(x = v, y = value, color = name)) + geom_abline() + geom_point() +
     geom_text(aes(label = id), color = "black", nudge_x = 0.3) +  
     scale_color_manual(name ="", values = c("v1" = "green", "v2" = "red")) +
     theme(legend.position="bottom") + xlab("x")
    cdlt

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Bonjour,

    Merci de votre aide.

    Quand j’exécute votre code j'ai un message d'erreur disant: (j'ai exécuté la commande library(tidyr); library(ggplot2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Error in pivot_longer(., cols = 3:4) : 
      could not find function "pivot_longer"

    Si non à partir de mon code il fallait rajouter la colonne v1 et v2 dans geom_text(aes(y=))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ggplot(dt, aes(x=v))+      
      geom_point(aes(y=v1, colour="v1")) +   # first layer
      geom_text(aes(y=v1,label=id),hjust=0, vjust=0) +
      geom_point(aes(y=v2, colour="v2")) +  # second layer
      geom_text(aes(y=v2,label=id),hjust=0, vjust=0) +
      geom_abline() +
      labs(title = "", x = "x", y = "y", subtitle = "") + 
      scale_color_manual(name = element_blank(),
                         labels = c("v1", "v2"),
                         values = c("v1" = "green", "v2" = "red")) +
      theme(legend.position = "bottom")

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    Quand j’exécute votre code j'ai un message d'erreur disant: (j'ai exécuté la commande library(tidyr); library(ggplot2)
    Probablement parce que ta version de tidyr est trop ancienne. Il te faut la mettre à jour.
    Une bonne pratique à prendre quand tu travailles avec ggplot2 c'est de travailler sur des tableaux en long plutôt que large, ce qui t'évitera de multiplier les layers et les geom.

    cdlt

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Bonjour,

    merci de votre aide

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

Discussions similaires

  1. Donner un nom permanent aux sections
    Par Third Joker dans le forum Mise en forme
    Réponses: 1
    Dernier message: 19/10/2012, 19h09
  2. [XL-2003] Donner un nom à un point dans un graphique Excel
    Par Loki83 dans le forum Excel
    Réponses: 7
    Dernier message: 02/04/2010, 19h48
  3. Donner un nom aux onglets d'un programme
    Par sircus dans le forum SAP
    Réponses: 2
    Dernier message: 13/03/2008, 12h14
  4. [Debug]Donner des noms aux thread lors du débugage
    Par jeje99 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/12/2005, 16h49
  5. Questions de mise aux points
    Par nicoo dans le forum DirectX
    Réponses: 5
    Dernier message: 11/05/2004, 14h01

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