在循环中使用geom_ribbon的任何方法都是如此。 我试试,但遇到了问题。 这是我的尝试:
library(ggplot2)
# Create data
huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron))
m <- 1500 #weight of shadow-line
#Base graph
h <- ggplot(huron, aes(year))+geom_line(aes(x=year, y=level), color='blue')+theme_bw()
count <- 5 # count shadow-lines
start_alpha <- 0.1 # Initial aplha
p <-h
for (i in 0:count-1)
{
p <- p +
geom_ribbon(aes(ymin=level-(level/m)*i, ymax=level-(level/m)*(i+1)), alpha=start_alpha-(start_alpha/count)*i, fill='blue')
}
print(p)
我调查结果。似乎i-cycle变量不是由值使用,而是用作指针。 看看这个:
i <- 0
print(p)
i <- 1
print(p)
答案 0 :(得分:0)
p <- ggplot(huron, aes(year))+geom_line(aes(x=year, y=level), color='blue')+theme_bw()
for (i in 0:(count-1))
{
p <- p +
geom_ribbon(aes_string(ymin=p$data$level-(p$data$level/m)*i, ymax=p$data$level-(p$data$level/m)*(i+1)), alpha=start_alpha-(start_alpha/count)*i, fill='blue')
}
print(p)