répéter un graphique à partir de différents fichiers .csv

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Virginie Moreaux
Messages : 3
Enregistré le : 28 Juil 2015, 08:45

répéter un graphique à partir de différents fichiers .csv

Messagepar Virginie Moreaux » 28 Juil 2015, 14:01

Bonjour,
Je souhaite créer un graphe par fichier .csv, sachant que tous ces graphes seront sur une seule page et que les fichiers .csv ont tous exactement la même structure. Je donne un exemple pour 12 fichiers csv, donc 12 graphes sur une même page.
Le programme suivant fonctionne bien, mais j'aimerais qu'il fonctionne quelque soit le nombre de fichiers csv, donc de façon automatisée...dans cet exemple, je sais que j'ai 12 fichiers, donc je créer facilement la variable '"seuil" puis par(mfrow=c(4,3)), mais comment faire si on a plus de 30 fichiers par exemple, sans avoir à écrire 30 fois seuil1....seuil30 dans seuil?

Code : Tout sélectionner

library(lattice)

#lecture dans le repertoire de tous les fichiers csv : data_penalites_2013_j1.csv.....data_penalites_2013_j12.csv
fichiers <- list.files(wd_envt_travail, pattern=".csv")   
numfiles <- length(fichiers)

load.file <- function(fichiers) {
  d <- read.csv(fichiers, stringsAsFactors=FALSE, sep=";")
  d
}

seuil <- c("seuil1", "seuil2", "seuil3", "seuil4","seuil5","seuil6","seuil7","seuil8","seuil9","seuil10","seuil11","seuil12")
data <- lapply(fichiers, load.file)
names(data) <- seuil
sapply(data, nrow)

par(mfrow = c(4, 3))

for (i in seuil) {
  plot(data[[i]]$hauteur_epi_1, data[[i]]$hauteur_epi_2, ylim=c(0,15), xlim=c(0,15),
       main = paste("", i, split = ""), ylab="H_E1C 2",xlab="H_E1C 1",
       )
  rmse <-signif(sqrt(sum((data[[i]]$hauteur_epi_1 - data[[i]]$hauteur_epi_2)^2)/length(data[[i]]$hauteur_epi_1)),3)
  text(x=9,y=2,labels=paste("RMSE=",rmse,sep=""),col="red")
  text(x=11,y=14,labels="1:1",col="grey45")
  abline(0,1,col="grey45")
}



Merci d'avance pour les bons conseils....

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Re: répéter un graphique à partir de différents fichiers .csv

Messagepar Nicolas Péru » 28 Juil 2015, 14:48

Bonjour,

Tupeux t'en sortir facilement avec ton code sur le nombre de fichiers:

Code : Tout sélectionner

paste0("seuil",1:numfiles)
 [1] "seuil1"  "seuil2"  "seuil3"  "seuil4"  "seuil5"  "seuil6"  "seuil7"
 [8] "seuil8"  "seuil9"  "seuil10" "seuil11" "seuil12" "seuil13" "seuil14"
[15] "seuil15" "seuil16" "seuil17" "seuil18" "seuil19" "seuil20" "seuil21"
[22] "seuil22" "seuil23" "seuil24" "seuil25" "seuil26" "seuil27" "seuil28"
[29] "seuil29" "seuil30"


Nicolas

Navarre Julien
Messages : 367
Enregistré le : 20 Avr 2012, 08:27

Re: répéter un graphique à partir de différents fichiers .csv

Messagepar Navarre Julien » 28 Juil 2015, 14:48

Bonjour, si ta question porte juste sur la création du vecteur seuil quelque soit le nombre de fichiers dans ton dossier, tu as les fonctions paste et sprintf

Code : Tout sélectionner

paste0("seuil", 1:numfiles)
sprintf("seuil%d", 1:numfiles)


Il faut aussi que tu fractionne ta fenêtre graphique en conséquence, mais à mon avis tu vas vite avoir des problèmes de place avec autant de graphiques sur la même fenêtre !

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: répéter un graphique à partir de différents fichiers .csv

Messagepar jean lobry » 31 Juil 2015, 18:26

Bonjour,

peut-être :

Code : Tout sélectionner

?n2mfrow

Amicalement,

jean


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité