Настройка масштаба для временных рядов с использованием фасетной обертки

У меня есть 15-минутные интервальные данные о температуре воды с 27 станций в заливе. Я рассчитал и нанес на график среднесуточную температуру для всего залива. Я использовал facet_wrap, чтобы построить их по годам: 2015, 2016 и 2017. Но после декабря есть точки выброса как для 2015, так и для 2016 (см. Ниже). Есть ли способ показать данные только с января по декабрь и исключить эти декабрьские выбросы? ,

Мои данные

> head(tempdat)
  station    sampletime_15min temp_c X station1 type     lat       lon depth_ft active..starting.20170524. Notes ID2  Easting Northing
1     d01 2016-01-26 13:15:00 27.605 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
2     d01 2016-01-26 13:30:00 27.487 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
3     d01 2016-01-26 13:45:00 27.479 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
4     d01 2016-01-26 14:00:00 27.471 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
5     d01 2016-01-26 14:15:00 27.445 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
6     d01 2016-01-26 14:30:00 27.462 1      d01   O2 18.3355 -64.98416       45                         no         1 290318.6  2028447
            Area       Date
1 Airport runway 2016-01-26
2 Airport runway 2016-01-26
3 Airport runway 2016-01-26
4 Airport runway 2016-01-26
5 Airport runway 2016-01-26
6 Airport runway 2016-01-26

Мой код

 tempdat_pre<-readRDS("Data/mnb_temp_all_20171117_QC.rds")
    #tempdat_pre<-tempdat_prep
    station<-read.csv("Data/Enviro_stations_area.csv")

    tempdat_p1<-merge(tempdat_pre, station)
    tempdat_p1$Date<-(as.Date(tempdat_p1$sampletime_15min))
    tempdat_p1 = tempdat_p1[!tempdat_p1$Date<"2015-01-01",]


    #Calculate averages
    tempdat<-tempdat_p1

    daily<-tempdat%>% 
            group_by(Date) %>%
            dplyr::summarise(avgtemp=mean(temp_c))
    daily

    daily$Date<-as.POSIXct(daily$Date, format="%Y-%m-%d", tz="UTC")
    daily<-as.data.frame(daily)

    daily$Date<-as.POSIXct(daily$Date, format="%Y-%m-%d", tz="UTC")
    daily$Year<-format(as.Date(daily$Date), "%Y")
    daily = daily[!daily$Date<"2015-01-01",] # to remove 2014 dates in case. 

    #PLOTS

    dtplot<-ggplot(daily,aes(x = Date,y = avgtemp)) + 
            #geom_point() +
            geom_line(colour="red", size=1.5)+
            #scale_colour_gradient2(low = "blue", mid = "green" , high = "red", midpoint = 16) + 
            #geom_smooth(color = "red",size = 1) +
            scale_x_datetime(name="Date", date_breaks="1 months", labels=date_format(format="%b"))+
            #scale_y_continuous(limits = c(5,30), breaks = seq(5,30,5)) +
            #theme(axis.text.x = element_text(angle = 90, hjust = 1))+
            ggtitle ("Daily average water temperature in Brewer's Bay, St. Thomas, USVI") +
            xlab("Date") +  ylab ("Average Temperature ( ºC )")+
            facet_wrap(~Year, scales='free_x', ncol=1, nrow=3)+
            theme(axis.text=element_text(size=10),
                  axis.title=element_text(size=12,face="bold"))
    dtplot

0 ответов

Другие вопросы по тегам