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 :

Diagrammes de distribution avec plusieurs courbes


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Shyma
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 100
    Par défaut Diagrammes de distribution avec plusieurs courbes
    Bonjour,

    Je voudrais faire un graphe de distribution avec plusieurs données que je récupère de plusieurs fichiers, j'ai essayé pour les données d'utiliser "read.table" pour créer un tableau avec le premier fichier qui correspond à la première courbe, mais là je m'aperçois que je ne peux pas ouvrir en même temps plusieurs fichiers avec read.table(), en même temps je voudrais donner un nom et une couleur spécifique pour chaque courbes.

    Avec Data.frame() c'est la création de matrice avec des données en entrée, moi je voudrais à partir de mes fichiers.

    Je suis assez perdue, je n'utilise pas du tout R

    Merci pour votre aide ou orientation vers une solution

  2. #2
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    read.table permet d'ouvrir plusieurs fichiers. Il y a donc une autre erreur dans ton script. Si tu veux qu'on t'aide à la trouver, envoie-nous ton code de lecture et le message d'erreur.

  3. #3
    Membre confirmé Avatar de Shyma
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    library(ggplot2)
     
    t<-read.table("fichier.txt", sep=" " )
     
    ggplot(t, aes(x=t)) + 
      geom_density()
    Pour un seul fichier, mais je ne sais pas comment faire pour plusieurs fichiers, et puis pour donner le nom, et couleur pour chaque graphe.
    PS : Je veux afficher le tout dans un seul graphe, pour pouvoir comparer

    Le fichier txt contient des pourcentage, donc une seule colonne de pourcentage.

  4. #4
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    Tu ne donnes pas assez de détail. Par exemple, il faut savoir si :
    1) les noms des fichiers son connus par avance ou non ;
    2) les tables ont des noms de colonnes en commun.

    Pour ce qui est de lire plusieurs fichiers, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab1 <- read.table( "fic1.txt", ...
    tab2 <- read.table( "fic2.txt", ...
    ...

  5. #5
    Membre confirmé Avatar de Shyma
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 100
    Par défaut
    Bonjour,

    Oui, les fichiers (6 en tout) sont connus d'avance, et ils ont la même forme, une colonne de pourcentages. Par contre, ce que je voudrais c'est d'afficher pour chaque fichier un graphe de distribution, mais que cela soit dans une seule figure, donc les 6 graphes en même temps, mais les distinguer avec leurs noms et couleurs, ça par contre je ne sais pas comment le faire ?

    Un peu comme ça, ici c'est 2 graphes, moi je voudrais les 6 en même temps : http://www.sthda.com/french/wiki/ggp...ion-de-donnees

    Mais là encore, ils ont utilisé data.frame, donc spécifier les données en entrée, et non par un fichier ?

  6. #6
    Membre expérimenté
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    Bonjour,

    en gros tu souhaites quelque chose dans ce style :
    Nom : Rplot01.png
Affichages : 274
Taille : 3,8 Ko
    Si c'est bien le cas, voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    p2 <- geom_density(data = data.frame(v2), aes(x=v2), colour = "red")
    p3 <- geom_density(data = data.frame(v3), aes(x=v3), colour = "blue")
    ggplot() + p2 +p3
    Dans mon exemple v2 et v3 sont des vecteurs de valeur suivant une distribution normale.

    Pour ton cas, il faut :
    1. charger dans une variable chacun de tes fichiers avec read.table()
    2. définir un geom_density pour chaque. Pas besoin de convertir tes variables qui sont déjà des data.frames
    3. tracer le graphique et faire les ajustements de mise en page (légende, titre, ...)


    Bonne journée

  7. #7
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    Une solution simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data1 <- cbind( read.table( "fic1.txt", ...autres parametres de read.table), FIC="fic1")
    data2 <- cbind( read.table( "fic2.txt", ...autres parametres de read.table), FIC="fic2")
    # et cela pour les six fichiers
    tableau <- rbind( data1, data2, data3, data4, data5, data6)
    On peut alors distinguer chacun des graphes par le nom du fichier qui lui est associé dans la colonne FIC.

    Mais là encore, ils ont utilisé data.frame, donc spécifier les données en entrée, et non par un fichier ?
    Le fichier est un stockage externe à R et à tout autre logiciel, permanent et sur disque dur. Quelque soit le logiciel, il faut le lire et le stocker en interne dans un espace mémoire interne au logiciel pour le manipuler. Si les données sont modifiées dans le programme, ces modifications sont perdues à la sortie du programme sauf si on les a précédemment sauvées sur disque, dans un fichier, soit le fichier d'origine - alors on écrase les anciennes données - soit dans un nouveau fichier. Dans R, le data.frame est la manière de structurer en interne la zone mémoire où sont stockées les données lues dans un fichier. Le data.frame correspond à la notion de tableau pour n'importe quel tableur comme Excel ou Calc de LibreOffice.

  8. #8
    Membre confirmé Avatar de Shyma
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 100
    Par défaut
    Bonjour,

    Merci pour vos réponses, j'ai utilisé la méthode de @Supernul, et cela m'a donné ce graphe :
    Nom : Rplot_Id_Protein.png
Affichages : 291
Taille : 9,0 Ko


    Je voudrais ajouter un titre pour chaque graphe pour les distinguer en plus de la couleur, mais aussi un titrer principal. Comment dois-je faire ?

    Merci pour votre aide encore une fois.

  9. #9
    Membre confirmé Avatar de Shyma
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 100
    Par défaut
    J'ai ce type d’erreurs en essayant d’afficher, le graphe de 5 fichiers, quelqu'un a une idée de ce que cela veut dire ??


    Error: Aesthetics must be either length 1 or the same as the data (5377): x

    Merci

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

Discussions similaires

  1. diagramme d'activités avec plusieurs objets
    Par wafiwafi dans le forum UML
    Réponses: 2
    Dernier message: 28/09/2011, 22h27
  2. Graphique dynamique avec plusieurs courbes
    Par thefutureisnow dans le forum Débuter
    Réponses: 1
    Dernier message: 12/07/2011, 13h56
  3. optimisation avec plusieurs courbes
    Par doudy22 dans le forum MATLAB
    Réponses: 9
    Dernier message: 25/10/2010, 12h24
  4. Graph avec plusieurs courbes - GD
    Par vargasvan dans le forum Modules
    Réponses: 4
    Dernier message: 11/05/2006, 13h47

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