我正在开展一个项目,要求我有20个不同的条形图。我发现我可以逐个绘制它们,但如果出现类似的问题,我正在寻找一种更有效的方法来实现这一目标。
我已经尝试过循环标准,但我的情节都是空的。
library(lattice)
par(mfrow = c(1,1))
b_clr <- c("steelblue", "darkred")
for(i in 1:20){
png(paste(i,'.png', sep = ''))
barchart(as.table(V[[i]]),
main = map$V1[i],
horizontal = FALSE,
col = ifelse(V[[i]] > 0,
b_clr[1],
b_clr[2]),
ylab = "Impact Value",
scales = list(x=list(relation = "free",
rot = 55,
labels = top.df[[i]],
cex = 1.1)))
dev.off()
}
如果我将其从循环中取出,并将所有i更改为单个值,则绘图工作正常。但是,如果我将它们作为循环运行,我就不会得到任何情节。任何人都可以提出任何建议吗?
答案 0 :(得分:2)
您需要使用print()
将您的号码打包到条形图:
library(lattice)
par(mfrow = c(1,1))
b_clr <- c("steelblue", "darkred")
for(i in 1:3){
png(paste(i,'test.png', sep = ''))
map <- iris[i * c(1, 2, 3),]
print(barchart(map$Petal.Length,
main = i,
horizontal = FALSE,
col = ifelse(map$Petal.Length > 0,
b_clr[1],
b_clr[2]),
ylab = "Impact Value"))
dev.off()
}