2016-03-22 3 views
0

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

код:

y<-series1 
r<-series2 
s<-series3 

require(graphics) 
manipulate( 
ts.plot(ts(y[x:(x+100)]),ts(r[x:(x+100)]),ts(s[x:(x+100)]),ts(t[x: (x+100)]),ts(h[x:(x+100)]), gpars=list(col = c("red","green","gray"))) 
, 
x=slider(1,length(y))) 

данные:

dput(series1[1:10]) 
c(9.5, 9, 14.5, 22.5, 13, 16, 22, 31.5, 51, 43) 


dput(series2[1:10]) 
c(20.3368220204774, 18.0733372276398, 16.61695493123, 15.6798824136643, 
15.0769466973063, 14.6890028922692, 14.4393902191708, 14.2787832298018, 
14.175444706505, 14.1089541357078) 

dput(series3[1:10]) 
c(17.8189147557743, 22.3815592342001, 16.108169527143, 21.0654757276344, 
16.3878646132368, 18.9345933680916, 16.634277276197, 15.4322081636797, 
20.2884280389731, 12.2089595405668) 
+0

Я не могу показаться, чтобы загрузить пакет, графики , – InfiniteFlashChess

+0

А также, для чего назначается каждая dput? Я ужасно смущен. Пожалуйста, перепишите материал! Также, пожалуйста, скажите нам, чтобы загрузить пакет «minipulate». – InfiniteFlashChess

ответ

0

Вы могли бы сделать это так

y<-c(9.5, 9, 14.5, 22.5, 13, 16, 22, 31.5, 51, 43) 
r<-c(20, 18, 17, 16, 15, 15, 14, 14, 14, 14) 
require(graphics) 
require(manipulate) 
manipulate({ 
    lines <- list(if (chk.y) ts(y), if(chk.r) ts(r)) 
    cols <- c(if (chk.y) "red", if (chk.r) "green") 
    do.call(ts.plot, c(lines, list(gpars=list(col=cols, xlab="t", ylab="y")))) 
}, 
    chk.y=checkbox(TRUE, "y"), 
    chk.r=checkbox(TRUE, "r") 
) 

enter image description here

+0

Спасибо, небольшая модификация вашего кода сделала трюк. 'У <-tsValidation г <-Acast $ означают требуется (графика) требуется (манипулировать) манипулировать ({ линии <- список (если (chk.y) ц (у [х: (х + 100) ]), если (chk.r) ts (r [x: (x + 100)])) cols <- c (if (chk.y) «красный», если (chk.r) «зеленый») do.call (ts.plot, c (строки, список (gpars = list (col = cols, xlab = "t", ylab = "y")))) }, chk.y = checkbox (TRUE, " y "), chk.r = checkbox (TRUE," r "), x = ползунок (1, длина (y)) )' – ndderwerdo