假设我在这种情况下:
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
nba <- nba[order(nba$PTS),]
row.names(nba) <- nba$Name
nba_matrix <- data.matrix(nba)
library(ggplot2)
library(reshape)
nba.m <- melt(nba)
library(plyr)
library(scales)
nba.m <- ddply(nba.m, .(variable), transform, rescale=rescale(value))
(p <- ggplot(nba.m, aes(variable, Name)) + geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue"))
现在我想创建一系列包含在同一pdf文档中的图像(不是n pdf文档):
listaNbA <- list(nba.m,nba.m)
pdf("bennagoal.pdf")
(p <- ggplot(listaNbA[[1]], aes(variable, Name)) + geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "purple")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
geom_text(aes(label=value))
)
(p <- ggplot(listaNbA[[2]], aes(variable, Name)) + geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "purple")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
geom_text(aes(label=value))
)
dev.off()
它可以生成包含两个页面的pdf文件。 现在我想做同样的事情,但是使用for循环:
listaNbA <- list(nba.m,nba.m)
pdf("jamesotto.pdf")
for(i in 1:2){
(p <- ggplot(listaNbA[[i]], aes(variable, Name)) + geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "purple")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
geom_text(aes(label=value))
)
}
dev.off()
第二个代码生成一个空的pdf文件。为什么呢?