r - 与由颜色和线型定义的 ggplot2 线和点的 4 向交互

标签 r ggplot2 anova interaction

我正在尝试使用 ggplot2geom_line()geom_point() 绘制析因实验的 4 向交互。

我正在处理的数据是 emmeans() 对象,它具有从线性混合效应模型估计的边际均值。

我可以通过 emmip() 得到的图表是这样的:

enter image description here

我想要的是分离 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 点之间绘制水平线:

enter image description here

我该如何解决这个问题?

我发现了一个直接处理来自 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)

enter image description here

关于r - 与由颜色和线型定义的 ggplot2 线和点的 4 向交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608155/

相关文章:

r - 公式中因子变量名称的安全且廉价的扩展

regex - 删除 R 中向量中每个数字的末尾

r - 如何 rm 功能多种模式

r - 向 ggplot2 图中添加辅助 y 轴 - 使其完美

R ggplot geom_bar() 标签条(带 'count' )

r - R 中 nls() 的分段函数拟合

r - 当角度在 45 和 90 之间时,如何更正 x 轴文本放置?

R 的 lm() 函数删除因子级别(除了截距估计器)而不报告错误或警告

scikit-learn - scikit学习: how to check coefficients significance

r - R 中的边际方差分析检验