我有一个ggvis boxplot,我正在尝试将一些值映射到点(例如,不同的size
)。我怎么能这样做?到目前为止,我有类似的东西,但是这两个层中没有一个与x轴上的类别正确对齐:
mtcars %>%
ggvis(x = ~factor(cyl), y= ~disp) %>%
layer_boxplots(size:=0 ) %>%
layer_points(size := 10)
更新
我刚刚注意到即使我只绘制layer_boxplots
mtcars %>% mutate(cyl=as.factor(cyl)) %>%
ggvis(x = ~cyl, y= ~disp) %>%
layer_boxplots()
但无法弄清楚为什么ggvis会这样做
答案 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中看到的那样,使用prop
和scale = "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)