在ggplot2上为不同长度的矢量创建小提琴图?

时间:2018-07-11 15:56:49

标签: r ggplot2 violin-plot

我有两个不同长度的向量,并想为其创建小提琴图。我目前正在做的是Transfert,这使得较短的向量可以重复,直到与较长的向量的长度匹配为止(默认情况下,由cbind在R中完成)。

cbind

这会影响小提琴的形状吗?是否有一种更正确的方法来创建小提琴图而不必人为地增加其中一个的长度?

1 个答案:

答案 0 :(得分:3)

不是cbind编写两个长度不同的向量,这将导致回收再熔化,而是制作两个数据帧,在其中标记每个代表的内容并rbind。这样一来,您可以从ggplot期望的形状开始,而不必冒从两组数据中较短的那一组重复值的风险。

library(ggplot2)

set.seed(710)
C1 <- data.frame(value = rnorm(100), variable = "C1")
C2 <- data.frame(value = rnorm(500), variable = "C2")

dat <- rbind(C1, C2)
head(dat)
#>         value variable
#> 1 -0.97642446       C1
#> 2 -0.51938107       C1
#> 3  1.05793223       C1
#> 4 -0.88139935       C1
#> 5 -0.05997154       C1
#> 6  0.31960235       C1

ggplot(dat, aes(x = variable, y = value)) +
  geom_violin(scale = "width", adjust = 1, width = 0.5)

reprex package(v0.2.0)于2018-07-11创建。