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 :

Représentation Graphique à plusieurs variables


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Représentation Graphique à plusieurs variables
    Bonjour, je fais appel à vos services car je n’arrive pas à résoudre un problème de graphique.
    Je dispose d’un tableau csv avec des colonnes : « modalite », « duree_retour », « session ».
    Les données de « modalite » ont deux formes possibles : « temoin » et « contaminé » (évidement je n’ai pas mis d’accent dans le tableau). Les données de « session » sont de 4 types : « session1 » , « session2 » , « session3 », « session4 ». Et les données de « duree_retour » sont sous forme numérique :ex 13,5 ou 300,7 (exprimé en minutes – dans cette colonne certaines valeurs sont +Inf quand il n’y a pas de retour). J’aimerais réaliser un graphique qui me donne le taux de retour en fonction du temps et de la modalité et tout cela, par session. J’ai un script qui me donne déjà le taux de retour en fonction du temps par modalité. Mais je n’arrive pas à intégrer à ce graph les sessions. Voici le script :

    (data_relacher_retour_marquage est le fichier csv)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    data_relacher_retour_marquage=merge(data_relacher_retour_unique,data_marquage,by.x="idtag_court",by.y="numtag_court",all.x=TRUE)
    data_relacher_retour_marquage$duree_retour[is.na(data_relacher_retour_marquage$duree_retour)]=+Inf
    duree_temoin=data_relacher_retour_marquage[data_relacher_retour_marquage$modalite=="temoin","duree_retour"]
    duree_contamine=data_relacher_retour_marquage[data_relacher_retour_marquage$modalite=="contamine","duree_retour"]
     
    dev.new()
    par(mfrow=c(1,2),mar=c(4.25,4.25,0.25,0.25))
    plot(ecdf(duree_temoin),col="grey",xlab="Time after release (min)", ylab="Cumulative homing probability",xlim=c(0,500),ylim=c(0,0.25),main="",verticals = TRUE,do.points=FALSE,lwd=3)
    lines(ecdf(duree_contamine),verticals = TRUE,do.points=FALSE,lwd=3)
    legend("topleft",c("temoin","contamine"),col=c("grey","black"),lty=c(1,1),lwd=c(3,3),cex=0.75)
     
    par(mar=c(4.25,0.5,0.25,0.25),las=2)
    plot(ecdf(duree_temoin),col="grey",xlab="Time after release (min)", ylab="Cumulative homing probability",xlim=c(600,7000),ylim=c(0,0.25),main="",yaxt="n",verticals = TRUE,do.points=FALSE,lwd=3)
    lines(ecdf(duree_contamine),verticals = TRUE,do.points=FALSE,lwd=3)
    Je pense que j’essaye de faire un graphique avec 2 variables qualitatives, je ne suis pas sûre de cela, mais je vous remercie d’avance si vous avez une idée pour modifier le script et me donner un sérieux coup de pouce. Bien cordialement.

  2. #2
    Membre régulier Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    Je ne sais pas si c'est exactement ce que vous recherchez mais je vais faire une réponse générale pour ce genre de travail avec votre exemple.

    Je suppose que vous voulez un graphique qui permette de synthétiser les informations de 3 variables (1 quantitatives avec 2 qualitatives) pour pouvoir effectuer des comparaisons visuelles.

    Pour cela, j'ai déjà commencé par générer une table d'exemple :

    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
     
    table0
        Modalite Duree  Session
    1     Temoin  10.2 Session1
    2     Temoin  10.2 Session1
    3     Temoin  10.2 Session1
    4     Temoin  10.2 Session1
    5     Temoin  10.2 Session1
    6  Contamine   2.6 Session1
    7  Contamine   2.6 Session2
    8  Contamine   2.6 Session2
    9  Contamine   2.6 Session2
    10 Contamine   2.6 Session2
    11    Temoin   2.6 Session2
    12    Temoin   2.6 Session2
    13    Temoin   2.6 Session3
    14    Temoin   2.6 Session3
    15    Temoin   2.6 Session3
    16 Contamine   4.9 Session3
    17 Contamine   4.9 Session3
    18 Contamine   4.9 Session3
    19 Contamine   4.9 Session4
    20 Contamine   4.9 Session4
    21    Temoin   4.9 Session4
    22    Temoin   4.9 Session4
    23    Temoin   4.9 Session4
    24    Temoin   4.9 Session4
    25    Temoin   4.9 Session5
    26 Contamine   4.9 Session5
    27 Contamine   4.9 Session5
    28 Contamine   4.9 Session5
    29 Contamine   4.9 Session5
    30 Contamine   4.9 Session5
    Ensuite, j'ai agrégé ces données pour m’intéresser aux moyennes des durées (par exemple) pour chaque couple de Modalité-Session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    > table0 = aggregate(table0$Duree, by=list(Modalite=table0$Modalite, Session=table0$Session), FUN=mean)
    > table0
        Modalite  Session    x
    1  Contamine Session1  2.6
    2     Temoin Session1 10.2
    3  Contamine Session2  2.6
    4     Temoin Session2  2.6
    5  Contamine Session3  4.9
    6     Temoin Session3  2.6
    7  Contamine Session4  4.9
    8     Temoin Session4  4.9
    9  Contamine Session5  4.9
    10    Temoin Session5  4.9
    Puis, j'ai construit mon Plot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    require(devtools)
    library(rCharts)
     
    > n1 <- nPlot(x ~ Session, group = "Modalite", data = table0, type = "multiBarChart")
    > n1$chart(margin = list(left = 100))
    > n1$yAxis( axisLabel = "Titre de l'axe Y",width=50)
    > n1
    Il faut ensuite exporter le graphique pour l'enregistrer où bon vous semble :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    n1$save("C:/.../Bureau/n1.html")
    Et voila ce que ça donne avec le jeu de données exemple :

    Nom : n1.PNG
Affichages : 3734
Taille : 19,2 Ko

    Il est possible de voir les données exactes en survolant les barres et de choisir les sous-populations que l'on souhaite afficher à l'écran (pratique pour un grands nombres de classes) en décochant les case en haut à droite.

    Peut-être que ça pourra aider quelque uns d'entre vous,

    Yoan.

Discussions similaires

  1. [XL-2010] Représentation de plusieurs séries sur un même graphique "Courbe"
    Par popoliline dans le forum Excel
    Réponses: 3
    Dernier message: 23/09/2014, 16h55
  2. Réponses: 2
    Dernier message: 26/06/2013, 11h17
  3. Représenter plusieurs variables sur un histogramme
    Par Lilouche52 dans le forum SAS STAT
    Réponses: 1
    Dernier message: 20/05/2011, 11h29
  4. Réponses: 1
    Dernier message: 07/10/2008, 23h28
  5. Représentation graphique de variable
    Par Ptinéwik dans le forum MATLAB
    Réponses: 9
    Dernier message: 04/01/2008, 17h32

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