我想使用ggplot图形从R中的函数中生成几个图形窗口...
testf <- function(a, b) {
devAskNewPage(TRUE)
qplot(a, b);
# grid.newpage(recording = TRUE)
dev.new()
qplot(a, a+a);
# grid.newpage(recording = TRUE)
dev.new()
qplot(b, b+b);
}
library(ggplot2)
x <- rnorm(50)
y <- rnorm(50)
testf(x, y)
Run Code Online (Sandbox Code Playgroud)
但是,dev.new()和grid.newpage()似乎都没有刷新前面的情节.
我知道,在R中,函数通常只生成他们评估的最后一件事,但我想更好地理解这个过程并了解任何可能的解决方法.
思考?
我制作了ggplot,它显示了一个物种的种群数量.这个脚本效果很好.所以我做了for-loop to chain为25种物种制作这个情节,但它不起作用.
以下是一个物种的示例:
A <- data.frame(sp="A",x=c(rep(0.1,3),rep(2,3),rep(4.5:8.5,4),6.5), width=c(rep(NA,3), rep(4,3), rep(1,20),5),y=c(rep(1:3,2), rep(1:4, each=5),5),col=c(rep("white",21), rep("grey80",6)), name1=c("C.I. (%)","C.N. (%)", rep("",25)), name1i=c(rep("",2), "Total",rep("",24)), nb1=c(rep(NA,7),1.33,0.53,0.52,0.42,NA,27.12,10.90,10.55,8.56,rep(NA,11)),nb2=c(rep(NA,16),24754,13558,5449,5273,4281,rep(NA,6)),nb3=c(rep(NA,6),2.43,rep(NA,4),49.51, rep(NA,15)), name2=c(rep("",21),"J","F","M","A","M","Month"))
library(ggplot2)
library(gridExtra)
table <- A
windows()
ggplot(table, aes(x=x, y=y, width=width, fill=col))+
geom_tile(colour="black")+
scale_fill_manual(values = c("white"="white", "grey80"="grey80"),
breaks = levels(table$col), na.value = "white")+
geom_text(aes(label=name1), size=6, hjust=0)+
geom_text(aes(label=name1i), size=6, hjust=0, fontface=3)+
geom_text(aes(label=nb1), size=6)+
geom_text(aes(label=nb2), size=6, fontface=3)+
geom_text(aes(label=nb3), size=6, fontface="bold")+
geom_text(aes(label=name2), size=6, fontface="bold")+
coord_cartesian(xlim=c(0,9), ylim=c(0.5,5.5))+
labs(x = "",y = "") +
scale_x_discrete(expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0))+
theme(axis.ticks …Run Code Online (Sandbox Code Playgroud)