我有一个关于this one的问题,关于如何在ggplot boxplot中自定义凹槽。该问题的作者回复了自己,并提示 ggplot_build(),但遗憾的是我无法使用它。
所以我的问题是:一旦你用 ggplot_build()手动设置你的缺口限制,如何重新使用它来定制自己的盒子图?
这是我的数据
vib = c(3.94,-0.61,0.03,0.46)
pla = c(0.784444444, 1.11,-1.98,-1.39)
df = data.frame(value = c(vib, pla),
group = c(rep("vibration", times = 4), rep("placebo", times = 4)))
p <- ggplot(df, aes(x = group, y = value)) + geom_boxplot(notch=TRUE)
gg <- ggplot_build(p)
gg$data[[1]]$notchlower[1]<-sort(vib)[qbinom(c(.25, .975), length(vib), .5)][1]
gg$data[[1]]$notchlower[2]<-sort(pla)[qbinom(c(.25, .975), length(pla), .5)][1]
gg$data[[1]]$notchupper[1]<-sort(vib)[qbinom(c(.25, .975), length(vib), .5)][2]
gg$data[[1]]$notchupper[2]<-sort(pla)[qbinom(c(.25, .975), length(pla), .5)][2]
gg$data[[1]]
ggplot(gg$data[[1]], aes(x = x)) +
geom_boxplot(aes(ymin = ymin, lower = lower, middle = middle, upper = upper, ymax = ymax),
stat = "identity",
notch = TRUE)
结果警告信息
Error in ifelse(notch, data$notchlower, NA) : replacement has length zero
In addition: Warning message:
In rep(yes, length.out = length(ans)) :
'x' is NULL so the result will be NULL
我做错了什么? 非常感谢