2017-06-29 4 views
0

J'ai la liste des trames de données et je veux exporter un graphique à barres par trame de données ... J'essaie d'utiliser lapply mais ça ne marche pas ... Est-ce que quelqu'un sait comment faire cela?Comment exporter plusieurs graphiques de R

my_data <- lapply(X = seq(from = 1, to = length(in_files_path), by = 1), FUN = function(x){ 
    data_tables <- read.table(file = in_files_path[[x]], header = TRUE) 
}) 

lapply(X = seq(from = 1, to = length(in_files_path), by = 1), FUN = function(x){ 
    setwd(dir = ou_graph_path) 
    png(filename = in_files_name[[x]], 
     units = "in", 
     width = 15, 
     height = 10, 
     res = 300) 
    ggplot(data = my_data[[x]], aes(x = my_data[[x]]$A, y = my_data[[x]]$B)) + 
    geom_bar() 
    dev.off() 
}) 
+0

Vous devez 'print' ou' plot' explicitement. Voir aussi [ici] (https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f). – Axeman

+1

Avez-vous regardé la fonction 'ggsave()'? – Jasper

+0

Enfin ggsave() était le meilleur moyen! Merci beaucoup! –

Répondre

1

Je vous conseille en utilisant l'approche suivante

Je vous conseille en utilisant l'approche suivante

# Get list of files 
# Start loop - 
# read files 
# make plot 
# store plots in list 
# - end loop 
# 
# Start loop - 
# perform plot operation 
# save plots 
# - end loop 

setwd(your_location_of_the_files) 
list_files = list.files(pattern = ".csv") 

for(i_file in list_files){ 
    dummy = fread(i_file,header = TRUE) 
    png(filename = paste(your_location_for_the_plots,in_files_name[[x]],sep="/"), 
    units = "in", 
    width = 15, 
    height = 10, 
    res = 300) 
    # You can just say A here, not dummy$A 
    plot(ggplot(data = dummy, aes(x = A, y = B)) + geom_bar()) 
    dev.off() 
} 
+1

Vous pouvez également spécifier le chemin dans 'png()'; Mieux vaut ne pas jouer avec le répertoire de travail. Je sauverais l'intrigue en même temps qu'elle est créée. Si vous créez 1000 tracés, cela peut causer des problèmes de mémoire si vous les mettez en mémoire en premier. – Jasper

+0

Ah oui, d'accord là-dessus! J'ai oublié cette option dans png. Éditera la réponse – zwep