R 中逐步函数之间的区域

问题描述 投票:0回答:1

我想绘制两个逐步函数之间的区域。

我已经尝试过

geom_ribbon
,但我是通过插值而不是恒定的间隔来绘制的。

comb = data.frame(time=rexp(20),n1=rep(1:10,each=2),n2=seq(from=2, to=11.5,by=0.5))
ggplot(comb) + geom_ribbon(aes(x=cumsum(time), ymin=n1, ymax=n2), fill="blue", alpha=.4) + geom_step(aes(x=cumsum(time), y=n1))+ geom_step(aes(x=cumsum(time), y=n2))

如有任何帮助,我们将不胜感激。

r ggplot2 area
1个回答
4
投票

一个简单的解决方法是将您的

cumsum(time)
移动到您的
comb
数据框中:

comb$ctime <- cumsum(comb$time)

然后您可以使用

geom_rect()
,如下所示:

ggplot() + 
  geom_rect(aes(xmin = ctime, xmax = dplyr::lead(ctime), 
                ymin = n1, ymax = n2), 
            fill = "blue", alpha = 0.4) +
  geom_step(aes(x=ctime, y=n1))+ 
  geom_step(aes(x=ctime, y=n2))

其产量:

© www.soinside.com 2019 - 2024. All rights reserved.