2017-01-21 4 views
0

ggplot2 новичок здесьИспользование ggplot2 facet_grid в паре временных рядов R

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

ggplot(dat,aes(x=year,y=data,fill=period,group=interaction(period, season))) + 
    geom_line()+facet_grid(season ~ ., scales="free") 

Вы можете видеть, что линии выглядят неудобно. Как я могу построить cu и fu вместе для каждого сезона? Используйте red цвет для cu и синий для fu.

dat=structure(list(period = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("cu", "fu"), class = "factor"), 
     season = structure(c(2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 1L, 
     1L, 1L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 
     1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L), .Label = c("DJF", "JJA", 
     "MAM", "SON"), class = "factor"), month = structure(c(7L, 
     6L, 2L, 7L, 12L, 11L, 10L, 12L, 3L, 5L, 4L, 3L, 8L, 1L, 9L, 
     8L, 7L, 6L, 2L, 7L, 12L, 11L, 10L, 12L, 3L, 5L, 4L, 3L, 8L, 
     1L, 9L, 8L), .Label = c("april", "august", "dec", "feb", 
     "jan", "july", "june", "march", "may", "nov", "oct", "sep" 
     ), class = "factor"), year = c(2001L, 2001L, 2001L, 2002L, 
     2001L, 2001L, 2001L, 2002L, 2001L, 2001L, 2001L, 2002L, 2001L, 
     2001L, 2001L, 2002L, 2001L, 2001L, 2001L, 2002L, 2001L, 2001L, 
     2001L, 2002L, 2001L, 2001L, 2001L, 2002L, 2001L, 2001L, 2001L, 
     2002L), data = c(84.08969137, 76.4948428, 18.35492802, 101.8821712, 
     24.21773903, 16.44881361, 19.57283027, 48.27623315, 8.572824549, 
     12.97601394, 11.50496081, 15.14899058, 13.96396375, 27.21030149, 
     36.1606234, 23.35430348, 95.77643784, 94.84972642, 47.26900009, 
     2.385978093, 21.48062239, 24.67779645, 20.07044416, 43.09234771, 
     13.28295078, 19.27189857, 15.24661793, 21.75991334, 19.38239851, 
     39.93109491, 38.54500325, 33.77559647)), .Names = c("period", 
    "season", "month", "year", "data"), class = "data.frame", row.names = c(NA, 
    -32L)) 

Спасибо за любые предложения.

+1

Почему вы используете 'fill' вместо' colour'? 'geom_line' игнорирует' fill' –

ответ

0

Я хотел бы сделать что-то вроде:

library(ggplot2) 
ggplot(dat,aes(x= 
       as.Date(sprintf("%s-%s-01",year,month), 
         "%Y-%b-%d"), 

         y=data,group=period,color=period)) + 
    geom_line()+facet_grid(season ~ ., scales="free") + 
    xlab("time") 

На самом деле я создаю очередную дату и группировки только по периодам.

enter image description here

+0

отлично! Именно то, что я искал. – code123

Смежные вопросы