Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ggplot2在R中的折线图下方创建彩色区域_R_Ggplot2 - Fatal编程技术网

使用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')