r ggplot2: заполните область под кривыми с помощью geom_step

#r #ggplot2

#r #ggplot2

Вопрос:

Я пытаюсь заполнить область под каждой функцией шага, используя ggplot2 и geom_step. Вот пример набора данных:

 time = c(0, 5, 8, 11, 14, 18, 20, 0, 3, 7, 13, 19, 20, 0, 4, 9, 15, 18) prob = c(1, 0.95, 0.80, 0.62, 0.30, 0.03, 0, 1, 0.92, 0.75, 0.57, 0.21, 0, 1, 0.80, 0.64, 0.43, 0) group = c(1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3)  df = data.frame(time, prob, group)  

Вот коды, которые я пробовал:

 plot1 = ggplot(df, aes(x = time, y = prob, group = group, fill = group))   geom_step()  geom_ribbon(data = df, aes(ymin = 0, ymax = prob))  

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

Ответ №1:

Вы можете использовать geom_rect вместо geom_ribbon .

 df %gt;%  mutate(group = as.factor(group)) %gt;%  ggplot(aes(x = time, y = prob, group = group, fill = group))    geom_step()   geom_rect(aes(xmin = time, xmax = lead(time),   ymin = 0, ymax = prob), alpha = 0.4)  

введите описание изображения здесь