【发布时间】:2020-12-15 09:26:10
【问题描述】:
我正在使用 R 和 ggplot 生成带有单个数据点叠加的箱线图。 x 轴上有两个主要组(sampleData 中的 var1)。第二组还有一个小分区(var2),我想用点填充来表示。我已经使用 ggnewscale 包中的 new_scale_fill 函数成功完成了这项工作。
但是,当我这样做时,它似乎会改变抖动,使得次要分割点 (var2) 在箱线图的左侧和右侧全部组合在一起。有没有办法避免这种情况并将所有点随机分组在 var1 组中?
示例数据和图形输出如下。
sampleData <- data.frame(numVal = c(rnorm(100)),
var1 = c(rep(c("x1", "x2"), each = 50)),
var2 = c(rep(c("x1","x2","x3"), times = c(50, 30, 20))),
var3 = c(rep(c("t1", "t2", "t3", "t4"), 25)))
ggplot(sampleData, aes(x = var1, y = numVal)) +
geom_boxplot(aes(fill = var1), alpha = 0.7) +
scale_fill_manual(values = c("red", "blue")) +
new_scale_fill() +
geom_point(aes(fill = var2), shape = 21,
position = position_jitterdodge()) +
scale_fill_manual(values = c("red", "blue", "white"))
theme(legend.position = "none")
【问题讨论】:
标签: r ggplot2 data-visualization jitter