使用ggplot2在R中的折线图下方创建彩色区域
我正在使用上面的折线图,它由以下代码生成:使用ggplot2在R中的折线图下方创建彩色区域,r,ggplot2,R,Ggplot2,我正在使用上面的折线图,它由以下代码生成: ggplot(data=df)+geom_线(aes(x=date,y=germany,col=“germany”))+ 地理线(aes(x=日期,y=韩国,col=“Coreia do Sul”)+ 比例\颜色\手册(值=c(“黑色”、“蓝色”))+ ylab(“确诊病例”) 数据帧df的第一行是: 日期德国韩国 1 2020-01-22 0 1 2 2020-01-23 0 0 3 2020-0
ggplot(data=df)+geom_线(aes(x=date,y=germany,col=“germany”))+
地理线(aes(x=日期,y=韩国,col=“Coreia do Sul”)+
比例\颜色\手册(值=c(“黑色”、“蓝色”))+
ylab(“确诊病例”)
数据帧df
的第一行是:
日期德国韩国
1 2020-01-22 0 1
2 2020-01-23 0 0
3 2020-01-24 0 1
4 2020-01-25 0 0
5 2020-01-26 0 1
6 2020-01-27 1 1
我希望在曲线下方创建彩色区域,如下所示:
可能吗?提前谢谢 这里有一个基本方法。作为概念的说明性证明,让我们使用[0,5*pi]上的两个函数
y1(x)=sin(x)+1
和y2(x)=max(0,8cos(x)exp(-.3x))
来表示一些任意数据:
# libraries dplyr, tibble
df <- seq(0, 5*pi, by=.01) %>%
enframe(value="x") %>%
mutate(y1=sin(x) + 1, y2=pmax(0, 8 * cos(x) * exp(-.3 * x) + 1));
在曲线下产生彩色区域:
大家好,欢迎来到Stack Overflow。链接中显示的图形在x轴上的每个点都有一个以上的值。它还将色带设置为特定的y轴值,因此在300和1000之间有一个黄色水平带。这就是你们想要的吗?用y轴值的色带,德国和韩国的计数作为叠加线绘制?没错。我的目标是将绿色区域设置为300以下,黄色区域设置为300到1000之间,红色区域设置为1000以上的值。就像上一张图片一样。ggplot中的geom_功能区命令是否适用于您?我自己没用过。以下是两个参考geom_ribbon选项的答案,可能会有所帮助。您需要更改颜色选项以获得所需的颜色,因为默认值不一样。了解geom_ribbon()正是我所需要的。谢谢大家的帮助!
df %>%
mutate(ymax=pmax(y1, y2)) %>%
ggplot(aes(x, y1)) +
geom_ribbon(aes(ymin=pmin(ymax, 0), ymax=pmin(ymax, 0.5)), fill='green') +
geom_ribbon(aes(ymin=pmin(ymax, 0.5), ymax=pmin(ymax, 1.5)), fill='yellow') +
geom_ribbon(aes(ymin=pmin(ymax, 1.5), ymax=pmin(ymax, max(ymax))), fill='red') +
geom_point() +
geom_point(aes(y=y2), color='blue')