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 :

Ajouter du texte sur des graphiques pdf


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Ajouter du texte sur des graphiques pdf
    Bonjour,

    J'ai crée un script R qui génère des graohiques à partir d'un fichier texte et qui les enregistre dans un fichier pdf.

    Dans ce même fichier texte j'ai des valeurs sur la dernière ligne que je voudrais ajouter en texte sur chaque graphique (1 valeur par graphique). Cette valeur n'a pas besoin d'être placée à un endroit spécifique sur le graphique.

    Le problème c'est qu'en utilisant la fonction "text()", cela ne génère que la première valeur (0,02622) sur le premier graphique, les autres graphiques ne bougent pas et les valeurs n'y sont pas ajoutées.

    J'ai également essayé la fonction "textplot()", mais cela ne génère qu'un tableau des données à la fin du fichier pdf et ce n'est aps ce que je veux.

    Voici comment le fichier est structuré:

    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
    Statut	Verrucomicrobia	Cyanobacteria	Spirochaetes	Thermotogae	Acidobacteria	Candidatus Cloacamonas	Nitrospirae	Gemmatimonadetes	Candidatus Poribacteria
    NR 1	2,259040403	0,147021403	0,14843507	0,073510701	0,035341683	0,015550341	0,009895671	0,002827335	0
    NR 1	0,419200898	0,110414522	0,110414522	0,063628708	0,029942921	0,013100028	0,009357163	0,005614298	0
    NR 1	3,932192894	0,131589132	0,116108058	0,061924298	0,034832417	0,015481074	0,010320716	0,005160358	0
    NR 1	2,063508255	0,135527025	0,09472319	0,049547515	0,029145597	0,011658239	0,008743679	0,00437184	0
    NR 1	1,984256539	0,139659738	0,112453296	0,054412885	0,038089019	0,010882577	0,01269634	0,001813763	0,001813763
    NR 1	0,119263218	0,181103406	0,134723265	0,08171739	0,03533725	0,011042891	0,008834312	0,008834312	0
    NR 1	1,360744266	0,17911565	0,133668395	0,088221141	0,05079399	0,01336684	0,024060311	0,008020104	0
    NR 11	0,90891953	0,092911774	0,076753205	0,025584402	0,047129161	0,002693095	0,008079285	0,002693095	0,002693095
    NR 11	0,135577729	0,105110823	0,082260644	0,045700358	0,039606977	0,003046691	0,007616726	0	0,003046691
    NR 11	0,138067061	0,107722652	0,080412684	0,047033834	0,074343802	0,012137764	0,010620543	0,00151722	0,003034441
    NR 11	0,365428105	0,091357026	0,083868745	0,03145078	0,046427341	0,005990625	0,002995312	0,002995312	0,002995312
    NR 11	0,118776851	0,118776851	0,078342178	0,035380339	0,045489007	0,002527167	0,003790751	0,002527167	0,002527167
    NR 11	0,255131625	0,110170474	0,08311106	0,038656307	0,048320383	0,003865631	0,005798446	0,001932815	0,003865631
    NR 11	0,258947068	0,121437246	0,082148725	0,035716837	0,044646046	0,003571684	0,001785842	0	0,003571684
    pvalue	0,02622	0,002331	0,0005828	0,0005828	0,01748	0,004079	0,01107	0,005160358	0,001414
    Et voici mon code:

    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
     
    #Importation des données
    Dataset <- 
      read.table("D:/Users/Pascal/Documents/THESE/METAGENOMIQUE/Analyses/Differential_analysis/NR_s-1_s+11/Phylum/Phylum.txt",
                 header=TRUE, sep="\t", na.strings="NA", dec=",", strip.white=TRUE)
     
    # Création d'un fichier pdf qui va contenir l'ensemble des graphiques
    pdf("file.pdf",width=7,height=7)
     
    #Implémentation d'une boucle permettant d'obtenir les boxplots
    i=2
    while(i<=length(Dataset)){
     
      nomcol=colnames(Dataset)
      espece_i=subset(subset(Dataset[1:14,]), select = c(nomcol[i]))
      b=subset(Dataset[1:14,], select = c(nomcol[1]))
      statut=factor(b[,1])
     
      graph<-boxplot(espece_i[,1]~statut, data=Dataset, id.method="n", col=c("green3"),main=nomcol[i], ylab="%", xlab="", las=1)
     
    #Insertion du texte sur les boxplots
      j=2
      espece_j=subset(Dataset[15,], select = c(nomcol[i]))
      text(2,3,espece_j[1,],cex=0.5)
      j=j+1
     
     
      i=i+1
     
    }
     
    #On ferme toutes les instances graphiques en cours
    graphics.off()
    Quelqu'un aurait-il une idée sur la manière d'écrire le code afin d'avoir une valeur sur chaque graphique?

    En vous remerciant de votre aide,

    Cordialement,

  2. #2
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Rapidement vu ton code (je ne me suis pas réellement plongé dedans) j'ai l'impression que tes vecteurs espece_i et espece_j sont bizarres...

    Après as-tu vérifié la position donnée à ta fonction text() ? En effet tu positionnes ton texte à x=2 et y=3, est-ce que cela ne sort pas de ta zone de graphique ? Je conseillerais de faire plutôt :
    Tu peux aussi choisir 'topright', 'top', etc...

    Après je n'aime pas trop les while en R si ce n'est pas obligé, tu pourrais faire ici une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i in 1:length(Dataset)) { }
    Mais ceci est une question de goût personnel.

    Vérifie aussi les valeurs de tes variables au cours de ton incrémentation. Si tu es sous RStudio (éditeur que je conseille grandement !), tu peux mettre un petit point rouge à gauche du numéro de ligne dans le code qui te permettra d'exécuter pas-à-pas ton code.

    Bon courage !

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/08/2007, 00h17
  2. Réponses: 3
    Dernier message: 09/05/2007, 12h11
  3. [PHOTOSHOP] Ajout du texte sur une image
    Par khokho dans le forum Imagerie
    Réponses: 3
    Dernier message: 28/03/2007, 14h05
  4. [GD] ajouter un texte sur une image uniquement à l'impression signature numérique
    Par DrHelmut dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 05/10/2006, 16h13
  5. Ajouter du texte sur une vidéo
    Par ChIcKeN78 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 01/06/2005, 10h43

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