有条件填充同一组内的密度图

Tyl*_*ane 5 r ggplot2 density-plot

我想创建一个带有脊线的密度图,其中颜色以跨越某个阈值为条件。

目的是说明收入的分配情况,同时突出显示超过特定阈值(每周 1368 澳元)的收入。我在下面提供了我的尝试的概要图。

ggplot(subset(vic, totalweekslost > 0 & nwe %in% 100:3000), 
       aes(nwe, fill = nwe > 1368)) + 
  geom_density()
Run Code Online (Sandbox Code Playgroud)

它不是仅仅改变密度图中单个组内的颜色,而是按照自己的比例创建一个新组。

转载于此

我想要的是颜色变化在同一组中,并显示出清晰的切点。我可以看到我的代码有什么问题,但我不知道如何创建我想要的东西。

vpz*_*vpz 2

也许您可以获得 的值geom_density()并使用geom_area().
参考这里
这应该可以解决问题:

library(ggplot2)

# Build some data
vic = data.frame(totalweekslost = 100:3000, nwe = 100:3000)

#Yours code
df = subset(vic, totalweekslost > 0 & nwe %in% 100:3000 )    

# Creating density plot
p = ggplot(df, 
           aes(x = nwe)
          ) + 
  geom_density()

# Getting the values of plot
d = ggplot_build(p)$data[[1]]

# Building shaded area
p = p +  geom_area(data = subset(d, x>1368), aes(x=x,y=y), fill = "#00AFBB", alpha = 0.5)

plot(p)
Run Code Online (Sandbox Code Playgroud)

这里是输出图