Временные интервалы затенения вручную с помощью ggplot2

121
15

Я создал вручную набор данных о ожидаемой продолжительности жизни с соответствующими 95% -ными доверительными диапазонами. Я рисую их по шкале времени, но предпочитаю, чтобы полосы были затенены, а не пунктирными линиями. Показанный код:


p1 = ggplot()
p2 = p1 + geom_line(aes(x=pl$Time, y=pl$menle), colour="blue")
p3 = p2 + geom_line(aes(x=pl$Time, y=pl$menlelb), colour="blue", lty="dotted")
p4 = p3 + geom_line(aes(x=pl$Time, y=pl$menleub), colour="blue", lty="dotted")

Есть ли простой способ затенять интервал, а не просто иметь линии?
Если я пропущу что-то просто, я извиняюсь заранее, но я не могу найти ничего, чтобы указать простой способ сделать это.

спросил(а) 2021-01-19T19:38:11+03:00 9 месяцев назад
1
Решение
231

Было бы полезно, если бы вы предоставили свои собственные данные, но я думаю, что следующее делает то, что вам нужно.


Сначала создайте некоторые фиктивные данные:


##I presume the lb and ub are lower/upper bound
pl = data.frame(Time = 0:10, menle = rnorm(11))
pl$menlelb = pl$menle -1
pl$menleub = pl$menle +1

Затем создайте сюжет. Затененная область создается с помощью geom_ribbon:


ggplot(pl, aes(Time)) + 
geom_line(aes(y=menle), colour="blue") +
geom_ribbon(aes(ymin=menlelb, ymax=menleub), alpha=0.2)

enter image description here

ответил(а) 2021-01-19T19:38:11+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема