Условное заполнение графика плотности в пределах одной группы - PullRequest
1 голос
/ 25 июня 2019

Я хочу создать график плотности с гребнями, где цвет зависит от пересечения определенного порога.

Цель состоит в том, чтобы проиллюстрировать распределение доходов при выделении доходов, превышающих определенный порог (1368 австралийских долларов в неделю). Ниже приведен голый сюжет моей попытки.

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

Вместо того, чтобы просто менять цвет элементов в пределах одной группы на графике плотности, он создает новую группу в своем собственном масштабе.

reproduced here

Я хочу, чтобы изменение цвета было в одной группе, и проиллюстрирована четкая точка отсечения. Я вижу, что не так с моим кодом, но я не могу понять, как создать то, что мне нужно.

1 Ответ

0 голосов
/ 25 июня 2019

Может быть, вы можете получить значения 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)

Here the output plot

...