2015-02-02 4 views
1

У меня есть набор данных, который я построил следующий участок вокруг: enter image description hereМожно ли обходить stat_smooth при использовании geom_smooth?

Участок подается из набора данных, включенный в нижней части этого поста, и производится из следующего ggplot2 кода:

ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) + 
    geom_line(aes(x= iHrMi, y = trimAv)) + 
    facet_grid(off ~ iMoYr, scales = "free") + 
    ggtitle("Typical Half Hourly Profiles") + 
    xlab("Time") + ylab("Energy (kWh)") 

Здесь я рисую значения trimAv (фактически средние значения) над iHrMi (эффективно час и минута). Это на грани off на iMoYr (фактически это процесс off, и разные месяцы в течение года).

Таблица данных уже имеет рассчитанные в ней эффективные сглаженные значения, под заголовком minEcl и maxEcl. Я хотел бы иметь возможность использовать geom_smooth для представления этих данных на графике в виде границ формы, созданных функцией geom_smooth, однако я не смог найти способ обойти вызов stat_smooth.

Моя ближайшая попытка до сих пор включают в себя:

+ geom_smooth(aes(x= iHrMi, y = trimAv, ymin = minEcl, ymax = maxEcl)) 

Однако это принуждается в лесс сглаживание, по-видимому, из-за размера данных, который выглядит следующим образом:

enter image description here

Возможно ли использовать определенные заранее рассчитанные значения geom_smooth, или я пытаюсь использовать geom_smooth очень неправильно? Кажется несоответствующим, что другие аргументы geom_ в ggplot2 настолько адаптируемы, и это кажется настолько жестким.

Голова и хвост источника данных (таблица данных) приводится ниже для целей структуры:

  iDate   off  trimAv trimStD minEcl maxEcl iMoYr iHrMi 
    1: 2013-08 00:00  Production 136.52273 37.300389 76.4 218.4 2013-08 00:00 
    2: 2013-08 00:30  Production 136.14091 36.117819 80.3 217.7 2013-08 00:30 
    3: 2013-08 01:00  Production 133.92500 32.808662 76.9 213.3 2013-08 01:00 
    4: 2013-08 01:30  Production 139.20476 37.929480 77.1 221.5 2013-08 01:30 
    5: 2013-08 02:00  Production 137.82857 36.422042 74.9 221.0 2013-08 02:00 
    ---                    
1148: 2014-07 22:30 Non-Production 50.51250 3.025812 47.1 56.3 2014-07 22:30 
1149: 2014-07 23:00 Non-Production 49.88571 2.066743 47.0 52.6 2014-07 23:00 
1150: 2014-07 23:30 Non-Production 49.94286 2.318661 46.5 52.5 2014-07 23:30 
1151: 2014-07 00:00 Non-Production 50.85714 2.860569 47.9 54.9 2014-07 00:00 
1152: 2014-07 00:30 Non-Production 50.72857 4.181194 47.6 59.1 2014-07 00:30 

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

+1

Извините, я не понимаю, какова ваша цель: что вы хотите делать с geom_smooth? Может вам просто нужно установить значение для параметра 'method'? – Julian

+1

Вы пытаетесь показать minEcl и maxEcl как затенение вокруг каждой точки trimStD или вы сначала хотите сгладить верхние и нижние точки с помощью minEcl и maxEcl, а затем показать shadding? – WaltS

+2

Возможно, вы можете попробовать 'geom_ribbon'? '+ geom_smooth (aes (x = iHrMi, ymin = minEcl, ymax = maxEcl))', возможно, вместе с 'geom_lines'? – Julian

ответ

1

Возможно, вы ищете geom_ribbon.

ggFacetProfile <- ggplot(sub, aes(group = iMoYr)) + 
    geom_line(aes(x= iHrMi, y = trimAv)) + 
    facet_grid(off ~ iMoYr, scales = "free") + 
    ggtitle("Typical Half Hourly Profiles") + 
    xlab("Time") + ylab("Energy (kWh)") + 
    geom_ribbon(aes(ymin = minEcl, ymax = maxEcl)) 
Смежные вопросы