2015-12-18 6 views
-1

Я хотел бы сравнить речные выбросы от трех различных индикаторов потока USGS, используя многопанельный участок, подобный изображению ниже, расположенному здесь: 1]: http://i.stack.imgur.com/QlYyg.png, где ось x время, ось y - речные сбросы (cfs), и каждая панель представляет гидрограф для каждого калибратора USGS. Ниже приведены первые десять строк данных и последующий код для создания сюжета, но без везения. Любые предложения или решения будут высоко оценены.Построение нескольких временных рядов в многопроцессорном графике

> head(flow,n=10) 
    DateTime USGS.1 USGS.2 USGS.3 
1 1/1/2015 2220 4190 6980 
2 1/2/2015 2180 4120 6660 
3 1/3/2015 2690 4510 8110 
4 1/4/2015 4550 12100 16800 
5 1/5/2015 4660 9120 19400 
6 1/6/2015 4350 10200 15300 
7 1/7/2015 4010 6540 14400 
8 1/8/2015 4020 7320 12800 
9 1/9/2015 3760 7600 13000 
10 1/10/2015 4160 7320 11900 
> 
> flow$DateTime<-as.POSIXct(strptime(flow$DateTime,"%m/%d/%Y")) 
> 
> flow.xts<-xts(flow,order.by=flow$DateTime) 
> 
> plot(flow,screens=c(1,3)) 

ответ

0

Попробуйте это:

library(ggplot2); library(tidyr) 
df2 <- gather(df[-1], key = V2) 
names(df2) <- LETTERS[1:3] 
ggplot(df2, aes(x = A, y = C, group = B)) + geom_line() + facet_grid(B~.) 

enter image description here

0

Здравствуйте, это довольно легко с tidyr, dplyr и ggplot2

library(dlyr) 
library(tidyr) 
library(ggplot2) 

flow %>% gather(Station, Q, USGS.1:USGS.3) %>% 
mutate(DateTime=as.POSIXct(strptime(flow$DateTime,"%m/%d/%Y")) %>% 
ggplot(aes(x=DateTime, y=Q)) + 
    geom_point() + 
    facet_wrap(~Station) 

Это тестировался как вы не обеспечивают воспроизводимые примеры.

НТН

0

Есть причина, почему вы используете xts? zoo более гибкий для временных рядов без часовых поясов.

library(zoo) 
flow$DateTime<-as.Date(flow$DateTime,"%m/%d/%Y") 
flow.zoo<-zoo(flow[,-1],order.by=flow$DateTime) 
plot(flow.zoo, col=1:3) 

enter image description here

+0

Спасибо, P Lapointe. Ваше решение сработало. Я решил использовать xts b/c. Я хотел бы также строить многоканальные данные с DateTime как% m /% d /% Y% H:% M. Кроме того, знаете ли вы, как я мог настраивать оси каждой панели и добавлять легенду к каждой панели? – mkRuser

+0

Аргумент 'major.format' будет отформатировать метки оси x. то есть 'plot.xts (flow, major.format ="% m /% d /% Y%% H:% M ")'. Для меток для горизонтальной и вертикальной осей используйте 'xlab' и' ylab'. – hvollmeier

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