2016-10-12 15 views
1

我有一個ggvis boxplot,我試圖將一些值映射到點(例如不同的size)。我怎麼能這樣做?到目前爲止,我有這樣的事情,但沒有一個兩層的正確對準在x軸的類別:如何僅在layer_boxplots中控制點的屬性?

mtcars %>% 
    ggvis(x = ~factor(cyl), y= ~disp) %>% 
    layer_boxplots(size:=0) %>% 
    layer_points(size := 10) 

enter image description here

UPDATE:

我只注意到即使我只是陰謀layer_boxplots

mtcars %>% mutate(cyl=as.factor(cyl)) %>% 
    ggvis(x = ~cyl, y= ~disp) %>% 
    layer_boxplots() 

但無法弄清楚爲什麼ggvis會這麼做

+1

相關的https://github.com/rstudio/ggvis/issues/366? – lukeA

+0

@lukeA謝謝,我發現我的答案在這裏https://github.com/rstudio/ggvis/issues/242對齊兩層,但仍然無法對齊網格 – Dambo

回答

0

要使boxplot中心排列在因子軸上,可以使用scale_nominal中的padding參數。

library(dplyr) 
library(ggvis) 

mtcars %>% 
    mutate(cyl = factor(cyl)) %>% 
    ggvis(x = ~cyl, y= ~disp) %>% 
    layer_boxplots(size:=0) %>% 
    scale_nominal("x", name = "xcenter", padding = .9) 

正如您在linked github issue看到,使用propscale = "xcenter"得到列隊點。

mtcars %>% 
    mutate(cyl = factor(cyl)) %>% 
    ggvis(x = ~cyl, y= ~disp) %>% 
    layer_boxplots(size:=0) %>% 
    layer_points(size := 10, prop("x", ~cyl, scale = "xcenter")) %>% 
    scale_nominal("x", name = "xcenter", padding = .9) 

enter image description here

相關問題