2015-02-11 2 views
1

Я пытаюсь узнать, как использовать ggvis, чтобы сделать участки. Я действительно хотел бы на это выглядит следующим образом:Как заказать участок в ggvis в R

Plot

я узнал, как сделать почти идентичный сюжет:

library(ggvis) 
y <- c(
"a", "b", "c", "d", "e", "f", "g", "h", 
"a", "b", "c", "d", "e", "f", "g", "h") 

x <- c(28, 25, 38, 19, 13, 30, 60, 18, 11, 10, 17, 13, 9, 25, 56, 17) 
Status <- c(rep(c('Group 1'),8), rep(c('Group 2'),8)) 

df <- data.frame(y,x,Status) 

df %>% ggvis(x= ~x, y= ~y, fill= ~Status) %>% layer_points() %>% 
    add_axis('x', properties= axis_props(grid = list(stroke = 'blank'))) %>% 
    add_axis('y', properties= axis_props(grid = list(stroke = 'blank'))) 

Мой вопрос: Как я могу заказать сюжет, как они сделали в верхнем плане? Похоже, они как-то приказали его от самого большого к самому маленькому. Благодаря!

+3

Это может быть не самый эффективный метод, но вы можете рассчитать порядок уровней вручную. В вашем коде добавляется 'lvl <- df %>% group_by (y)%>% summary (total = sum (x))%>% arr (desc (total))%>% select (y)' и 'df $ y <- factor (df ​​$ y, levels = lvl $ y) 'должен правильно упорядочить порядок. – jraab

ответ

2
tbl_df(df) %>% 
    mutate(y=as.character(y), x=as.numeric(x)) %>% 
    arrange(desc(x)) %>% 
ggvis(x= ~x, y= ~y, fill= ~Status) %>% layer_points() %>% 
    add_axis('x', properties= axis_props(grid = list(stroke = 'blank'))) %>% 
    add_axis('y', properties= axis_props(grid = list(stroke = 'blank')))