2015-07-13 3 views
0

Я хотел бы построить ступенчатую функцию в ggvis, которая влияет на два цвета с помощью фактор-переменной. В ggplot это может быть достигнуто для этого воспроизводимым например, выполнив:Построение функции шага в ggvis

library(ggplot2) 
set.seed(10) 
df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN"))) 
ggplot(data=df)+geom_step(aes(id,y,colour=col)) 

enter image description here

В ggvis я пытался что-то вроде этого:

library(ggvis) 
set.seed(10) 
df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN"))) 
df %>% ggvis(x = ~id, y = ~y,stroke := ~col) %>% 
layer_paths() 

Это дает мне пустой участок и я Не знаю, почему. Layer_paths не совсем то, что я ищу, я читал here, что geom_step из ggplot2 переводится в layer_paths + transform_step в ggvis, но я не понимаю, как это делается. Спасибо за ваше время!

ответ

0

Я нашел решение для этого, используя group_by из dplyr и метод интерполяции из Vega. Кроме того, я узнал, что если целью является построение каждого фактора в data.frame, вместо «: = ~ MyFactorVariable» используется «= ~ MyFactorVariable». ": =" используется, если значение фиксировано. например Ход: = "красный":

library(dplyr) 
library(ggvis) 
set.seed(10) 
df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN"))) 
df %>% group_by(col)%>%ggvis(x = ~id, y = ~y) %>% 
layer_paths(interpolate:="step-after",stroke = ~col)  

enter image description here