有条件地填写同一组内的密度图
Conditional fill in a density plot within same group
我想创建一个带有脊线的密度图,其中颜色以超过某个阈值为条件。
目的是说明收入分布,同时突出显示超过特定阈值(每周 1368 澳元)的收入。我在下面提供了我尝试的基本情节。
ggplot(subset(vic, totalweekslost > 0 & nwe %in% 100:3000),
aes(nwe, fill = nwe > 1368)) +
geom_density()
它不是仅仅更改密度图中单个组内的颜色,而是按自己的比例创建一个新组。
我想要的是颜色变化在同一组中,并且有一个清晰的切点。我可以看到我的代码有什么问题,但我不知道如何创建我想要的东西。
也许您可以获得 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)
我想创建一个带有脊线的密度图,其中颜色以超过某个阈值为条件。
目的是说明收入分布,同时突出显示超过特定阈值(每周 1368 澳元)的收入。我在下面提供了我尝试的基本情节。
ggplot(subset(vic, totalweekslost > 0 & nwe %in% 100:3000),
aes(nwe, fill = nwe > 1368)) +
geom_density()
它不是仅仅更改密度图中单个组内的颜色,而是按自己的比例创建一个新组。
我想要的是颜色变化在同一组中,并且有一个清晰的切点。我可以看到我的代码有什么问题,但我不知道如何创建我想要的东西。
也许您可以获得 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)