是否需要一個額外的循環才能將ggplot的一系列圖形寫入單個.pdf,而不是將每個圖形作爲單獨的.pdf?否則,這段代碼按照我的要求做:按類型子集,將ggplot數組寫入pdf - 每個位置用顏色編碼的年份覆蓋一個網格圖,y軸標籤爲類型,x軸標籤爲日期。其他建議/改進?使用d_ply寫入pdf,多個ggplots,循環多個變量
d_ply(m,"type",function(a) {
p <- ggplot(a, aes(y=result, x=day, color=colorcode)) + geom_point()
q <-p + plotOptions + ylab(a$type)
print(q)
ggsave(paste(a$type,".pdf"), plot=q)
})
樣本數據幀
a<-factor(c(rep("A",4),rep("B",4)))
b<-factor(c(rep("2006",4),rep("2007",4)))
d<-c(rep(13,4),rep(14,4))
e<-factor(c(rep("birds",4),rep("fish",4)))
f<-sample((25:100),8)
g<-factor(c(rep("2003-12",4),rep("2003",4)))
m<-data.frame(a,b,d,e,f,g)
colnames(m)<-c("location","year","day","type","result","colorcode")
names(m)<-tolower(names(m))
backColor <- "moccasin"
plotOptions <- list(scale_colour_manual(values = c("skyblue","royalblue"), name="year"),
facet_wrap(~ location, ncol=4))
感謝您的任何意見。
更新
所以,我的代碼的初步草案試過你的建議,但結果卻是一個空的PDF:
pdf(file="test.pdf")
d_ply(m,"type",function(a) {
p <- ggplot(a, aes(y=result, x=day, color=colorcode)) + geom_point()
p + plotOptions + ylab(a$type)
})
dev.off()
那只是因爲沒有明確打印更新爲P?關於這方面的在線討論有各種方向,有些非常複雜,有些是對ggsave的調用等等。這就是爲什麼我最終打電話給ggsave。最後一個問題:在ylab的兩個因子字段中組合值,比如在一個單元上,可以這樣工作:a [c(「f1」,「f2」),sep =「」)] ?
當一個函數調用的預期結果在R打印某種對象,而結果是一個空文件,這是一個很好的指標,顯式的打印電話是必要的? – user2009447