将样本与 R 中的小提琴图配对

Pairing samples with violin plot in R

我正在尝试从 ggpaired (ggpubr) 重现此图,但使用小提琴图而不是箱线图:

before <-c(200.1, 190.9, 192.7, 213, 241.4, 196.9, 172.2, 185.5, 205.2, 193.7)
after <-c(392.9, 393.2, 345.1, 393, 434, 427.9, 422, 383.9, 392.3, 352.2)

 d <- data.frame(before = before, after = after)
 ggpaired(d, cond1 = "before", cond2 = "after",
     fill = "condition", palette = "jco")

我尝试使用 ggplot2 中的 geom_violin,但没有像 ggpaired 那样成功配对样本

您需要先重塑数据:

library(ggplot2)
before <-c(200.1, 190.9, 192.7, 213, 241.4, 196.9, 172.2, 185.5, 205.2, 193.7)
after <-c(392.9, 393.2, 345.1, 393, 434, 427.9, 422, 383.9, 392.3, 352.2)

d <- data.frame(before = before, after = after)
d$obs <- 1:nrow(d)
d2 <- tidyr::gather(d, time, value, -obs)

ggplot(d2, aes(time, value)) + 
  geom_violin() +
  geom_point() +
  geom_line(aes(group = obs)) +
  scale_x_discrete(limits = c('before', 'after'))