我在R
中有以下功能pairwise.yearly.plot <- function(data.source, data.target, suffix=".PR", years=2003:2007) {
# plot pairwise year data for time series representation of data
first <- years[1]
last <- years[length(years)]
nc <- last - first #2007-2003
par(mfrow=c(nc, nc))
for(y1 in years) {
for(y2 in years) {
if(y1 < y2) {
year.source <- num.to.colname(y1);
if(suffix == ".PE") {
year.target <- paste(num.to.colname(y1), y2, sep=".");
} else {
year.target <- paste(num.to.colname(y2), suffix, sep="");
}
plot(data.source[[year.source]], data.target[[year.target]], xlab=y1, ylab=paste(y2, suffix,sep=""))
}
else if(y1 > y2) {
frame()
}
}
}
}
当我用:
调用它时png("output.png")
pairwise.yearly.plot(foo, bar)
dev.off()
我得到一个空的png文件。将图形设备设置为pdf时不会发生这种情况。有谁可以告诉我为什么以及如何解决这个问题?
答案 0 :(得分:2)
问题在于你调用的绘图命令比你用par准备的更多(mfrow = c(nc,nc))
如果nc是4,那么你准备16个单元格来绘制,但循环占25个操作。如果最后一个额外的操作是frame(),你最终会得到一张空白图片。
答案 1 :(得分:0)
如果您使用的是 png("PNG_FILE.png")
g <- ggplot(....)
print(g)
dev.off()
,请使用此模板:
{{1}}