如何在ggplot2中使geom_rect在左右两侧逐渐消失?

3
1个回答

2
这个怎么样?
xmin <- 95
xmax <- 105
xmid <- (xmin + xmax) / 2

n <- 20 # number of steps in gradient, increase to have smoother fading out
alphas <- seq(0,1,1/n)
inc <- (xmid - xmin) / n

xcur <- xmin
df <- NULL
for (alpha in alphas) { # gradient left to right
  df <- rbind(df, data.frame(xmin=xcur, xmax=xcur+inc, alpha=alpha))
  xcur <- xcur + inc
}
for (alpha in rev(alphas)) { # gradient right to left
  df <- rbind(df, data.frame(xmin=xcur, xmax=xcur+inc, alpha=alpha))
  xcur <- xcur + inc
}

ggplot(df) + geom_rect(aes(xmin = xmin, xmax = xmax, alpha = alpha), 
                     ymin = -Inf, ymax = Inf, fill = "red" 
                     ) + xlim(90, 110) + theme_bw()

enter image description here


2
不错的解决方案,但是阴影包括了上限整数数值,所以在这种情况下,达到106而不是105。使用alphas <- seq(0,1,1/(n-1))来修复这个问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接