考虑这个嵌套数据集,其中我的目标是在 x 轴上绘制两个嵌套因子变量:
df <- data.frame(X=c(rep("A",9), rep("B",9), rep("C",9)),
nested=c(rep(c(rep("X",3), rep("Y",3), rep("Z",3)),3)),
response=runif(27))
ggplot(df) +
geom_point(aes(x=X, y=response, col=nested, group=nested, shape=nested), position=position_dodge(width=1))
我想将每个 X
级别的嵌套
级别中的点连接起来,以便在绘图中获得从最大值到最小值的垂直平行线每个嵌套级别中的响应
。 (很相似,如果要使用箱线图,我会使用 fill=nested
),但我的第一种方法并不令人满意:
ggplot(df) +
geom_point(aes(x=X, y=response, col=nested, group=nested, shape=nested), position=position_dodge(width=0.3))+
geom_line(aes(x=X, y=response, col=nested, group=nested))
我可以想象使用 geom_errorbar,但这意味着我需要创建一个带有最小值和最大值的单独数据框,对吗?
最佳答案
你也可以躲避线路。只需确保 group
美学映射到 nested
和 X
之间的交互即可:
ggplot(df) +
geom_point(aes(x = X, y = response, col = nested, shape = nested),
position=position_dodge(width = 0.3)) +
geom_line(aes(x = X, y = response, col = nested,
group = interaction(nested, X)),
position = position_dodge(width = 0.3))
关于r - 按组连接躲避的 geom_point 的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64560515/