Как определить нижнюю и верхнюю границы при усреднении и построении значений? - PullRequest
0 голосов
/ 28 августа 2018

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

Мой фрейм данных выглядит так:

 > data
   scenario decade FutureRangeSize.FullDisp
38    rcp85   2060                    85847
1     rcp45   2020                   376997
75    rcp85   2100                     6328
42    rcp45   2060                    68878
54    rcp85   2060                    44859
37    rcp45   2060                    70499
13    rcp85   2020                   192015
80    rcp85   2060                     1571
48    rcp45   2100                    61264
26    rcp85   2020                   123585
49    rcp85   2100                    72115
58    rcp85   2060                    32498
52    rcp45   2060                    52573
19    rcp85   2020                   139007
61    rcp85   2060                    17571
36    rcp45   2100                    85076
27    rcp45   2060                   234809
84    rcp85   2100                      123
44    rcp85   2020                    52735
71    rcp45   2100                     8967

Таким образом, существует два сценария (rcp45, rcp85) и десятилетия в диапазоне от 2020 до 2100. Я хотел бы сделать среднее для каждого десятилетия для каждого сценария соответственно и построить нижнюю и верхнюю границу как заштрихованную область на одном графике.

Кто-нибудь может привести рабочий пример, как это сделать?

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете начать с простого tidyverse

library(tidyverse)

d %>% 
 group_by(scenario, decade) %>% 
 summarise_at(vars(FutureRangeSize.FullDisp), funs(Mean=mean, Sd=sd)) %>% 
  mutate(Sd=ifelse(is.na(Sd),0,Sd)) %>% 
  ggplot(aes(x=decade, y=Mean, color=scenario, fill=scenario)) + 
    geom_point() + 
    geom_ribbon(aes(ymin = Mean - Sd, ymax= Mean + Sd), alpha=0.2)

enter image description here

Или попробуйте stat_summary подход, как описано здесь

ggplot(d, aes(x=decade,y=FutureRangeSize.FullDisp, color=scenario)) + 
 geom_point() +
 stat_summary(fun.data = 'mean_sdl', geom = 'smooth', alpha=0.2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...