我正在尝试使用 ggplot2
与 geom_line()
和 geom_point()
绘制析因实验的 4 向交互。
我正在处理的数据是 emmeans()
对象,它具有从线性混合效应模型估计的边际均值。
我可以通过 emmip()
得到的图表是这样的:
我想要的是分离 b:c
交互,这样一个因素由颜色和/或点类型定义,另一个由线型定义(虚线与实线)
一个最小的例子是这样的:
df<- data.frame(y=rnorm(n=16),
a=gl(2,4,16, labels=c("a1","a2")),
b=gl(2,2,16, labels=c("b1", "b2")),
c=gl(2,1,16, labels=c("c1", "c2")),
fac=gl(2,8,16, labels=c("panel1", "panel2")))
我尝试了以下 ggplot()
代码:
ggplot(df, aes(y=y, x=a, color=b)) +
geom_point(aes(shape=b), size=3) +
geom_line(aes(linetype=c)) +
facet_wrap(~fac)
但是我收到一个警告,我不知道如何处理:
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
图表看起来几乎如预期,但没有c
因子在相应的b
点之间绘制水平线:
我该如何解决这个问题?
我发现了一个直接处理来自 lmer()
对象的预测值的类似问题:How to plot mixed-effects model estimates in ggplot2 in R? 但仍然找不到处理我的数据格式的方法。
最佳答案
正在关注 Z.Lin comment above我找到了我要找的东西:
ggplot(df, aes(y=y, x=a)) +
geom_point(aes(color=b),size=3) +
geom_line(aes(group = b:c, color=b, linetype=c), size=1) +
facet_wrap(~fac)
关于r - 与由颜色和线型定义的 ggplot2 线和点的 4 向交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608155/