Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/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
R geom_ribbon未在间隔内正确着色密度曲线下的区域_R_Ggplot2_Density Plot - Fatal编程技术网

R geom_ribbon未在间隔内正确着色密度曲线下的区域

R geom_ribbon未在间隔内正确着色密度曲线下的区域,r,ggplot2,density-plot,R,Ggplot2,Density Plot,我正试图用下面的代码在对数正态密度图下的某个时间间隔对该区域进行着色。这在过去使用其他密度函数和区间对我有效,但由于某种原因,现在它产生了你可以在图中看到的缺陷 库(ggplot2) 图书馆(plyr) 图书馆(dplyr) 图书馆(tidyr) 这里的问题是,您试图制作一条由两块组成的缎带。因此,两个预期的红色区域尝试相互连接:ymax左侧区域结束,而ymax右侧区域开始,以及ymin相同。可能在过去,您总是使用这种方法来计算分布尾部,而这个问题从未出现过 要解决这个问题,您需要手动创建两个

我正试图用下面的代码在对数正态密度图下的某个时间间隔对该区域进行着色。这在过去使用其他密度函数和区间对我有效,但由于某种原因,现在它产生了你可以在图中看到的缺陷

库(ggplot2)
图书馆(plyr)
图书馆(dplyr)
图书馆(tidyr)

这里的问题是,您试图制作一条由两块组成的缎带。因此,两个预期的红色区域尝试相互连接:
ymax
左侧区域结束,而
ymax
右侧区域开始,以及
ymin
相同。可能在过去,您总是使用这种方法来计算分布尾部,而这个问题从未出现过

要解决这个问题,您需要手动创建两个
geom\u功能区
。一种不太具侵入性的方式是

gg <- ggplot(data = df, aes(x = x, ymin = 0, ymax = f))
gg <- gg + geom_ribbon(aes(fill = factor("Not participating")))
gg <- gg + geom_ribbon(data = df[df$area == "Participating", ], aes(fill = area))
gg <- gg + theme(legend.title = element_blank())
gg
gg <- ggplot(data = df, aes(x = x, ymin = 0, ymax = f))
gg <- gg + geom_ribbon(aes(fill = factor("Not participating")))
gg <- gg + geom_ribbon(data = df[df$area == "Participating", ], aes(fill = area))
gg <- gg + theme(legend.title = element_blank())