为ggpaired添加抖动

Add jitter to ggpaired

ggpubr 包提供函数 ggpaired 来绘制配对数据。 它不像 ggboxplot 那样有选项 add='jitter'

是否可以通过不同的方式达到类似的效果?

文档中的示例:

require(ggplot)
require(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", add="jitter")


data("ToothGrowth")
df <- ToothGrowth
ggboxplot(df, x = "dose", y = "len", width = 0.8, add="jitter")

这里有一些与 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)
n <- length(before)
d <- data.frame(y = c(before, after), 
                x = rep(c(1,2), each=n),
                id = factor(rep(1:n,2)))

set.seed(321)    
d$xj <- jitter(d$x, amount=.03)
ggplot(data=d, aes(y=y)) +
  geom_boxplot(aes(x=x, group=x), width=0.2, outlier.shape = NA) +
  geom_point(aes(x=xj)) +
  geom_line(aes(x=xj, group=id)) +
  xlab("Condition") + ylab("Value") +
  scale_x_continuous(breaks=c(1,2), labels=c("Before", "After"), limits=c(0.5, 2.5)) +
  theme_bw()