如何仅在layer_boxplots中控制点的属性?

时间:2016-10-12 20:48:04

标签: r ggvis

我有一个ggvis boxplot,我正在尝试将一些值映射到点(例如,不同的size)。我怎么能这样做?到目前为止,我有类似的东西,但是这两个层中没有一个与x轴上的类别正确对齐:

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

enter image description here

更新

我刚刚注意到即使我只绘制layer_boxplots

,也会出现与箱线图的对齐问题
mtcars %>% mutate(cyl=as.factor(cyl)) %>% 
  ggvis(x = ~cyl, y= ~disp) %>% 
  layer_boxplots()

但无法弄清楚为什么ggvis会这样做

1 个答案:

答案 0 :(得分:0)

要使箱线图中心在因子轴上排成一行,您可以使用padding中的scale_nominal参数。

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