如何在循环中使用geom_ribbon

时间:2016-06-09 16:02:53

标签: r ggplot2

在循环中使用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)

1 个答案:

答案 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)