2015-03-14 7 views
1

Мне нужно сделать кучу отдельных участков и выполнить это в цикле for. Я использую ggplot2. Я бы просто использовал опцию facet, если бы он мог сохранить каждый график в отдельном файле, который я не думаю, что он может это сделать.Земельные участки, не работающие в петле

Что-то происходит, потому что сюжеты не сохраняются в файлах. Однако файлы создаются, но являются пустыми. Вот идея о том, что мой код выглядит следующим образом:

for(i in 1:15) {  
pdf(paste("path/plot", i, ".pdf", sep=""), width=4, height=4) 

abc <- ggplot(data[data[,3]==i,], 
       aes(variable, value, group=Name, color=Name)) + 
    geom_point(alpha=.6, size=3)+geom_line() + 
    theme(legend.position="none", axis.text.x = element_text(angle = -330)) + 
    geom_text(aes(label=Name),hjust=0, vjust=0, size=2.5) + 
    ggtitle("Title") 

abc 

dev.off() 
} 

Как сохранить графики в эти файлы?

Обратите внимание, что если у меня есть числовое значение, и я запускаю код внутри цикла for, все работает.

+1

вы пытались 'печати (ABC)'? –

ответ

5

Когда я использую print это работает:

for(i in 1:15) { 
    pdf(paste("plot", i, ".pdf", sep=""), width=4, height=4) 
    abc <- ggplot(mtcars, aes(cyl, disp)) + 
    geom_point(alpha=.6, size=3) 
    print(abc) 
    dev.off() 
} 
3

Или попробуйте ggsave:

for(i in 1:15) { 
Filename <- paste("plot", i, ".pdf", sep="") 
abc <- ggplot(mtcars, aes(cyl, disp)) + 
    geom_point(alpha=.6, size=3) 
ggsave(filename = Filename, abc, width=4, height=4) 
} 
Смежные вопросы