首页 > 解决方案 > 如何在从线性模型创建的两个图中独立标记两个 x 轴?

问题描述

如果以前有人问过这个问题,我深表歉意,我确信有一种简单的方法可以做到这一点,但我试图搜索论坛,但找不到答案。

我们创建了一个线性模型,该模型在管理测试中获得分数,并将其作为个人是否以英语为母语及其学习年份的函数进行检查。

art_mod1A = lm(art_score ~ native + year, data = art, subset = abs(scale(resid(art_mod1)))<2.5)

然后我们要使用效果包中的 allEffects 函数将其绘制出来。

plot(allEffects(art_mod1A), colors = "black", ylab = "ART Score", main = "")

这会在一张图像中产生两个图,就像这样。

我没有看到一种独立标记 x 轴的方法。将相同的 ylab 应用于两个作品,因为它们说明了相同的分数,但 x 轴必须是唯一的。具体来说,左边是“本地化”,右边是“学习年份”。

我想也许我可以使用 grid.arrange 将它们放在一起,就像在这篇文章中一样,但似乎这只是为了安排多个图,我已经可以通过模型本身的性质来做到这一点。这不允许我独立重命名轴。

有人能指出我正确的方向吗?

非常感谢!

标签: rplot

解决方案


我想到了!我将把它留下来证明我的愚蠢。

基本上我必须通过使用“selection=1”或“selection=2”来选择单个效果图,然后将它们存储为向量。然后我不得不根据这个线程使用来自包(gridExtra)的grid.arrange将它们重新组合在一起。

所以代码是这样的:

artplot1 <- plot(allEffects(art_mod1A), selection=2, multiline= T, main = "", ylab = "ART Score", xlab = "Year of Study", colors = c("black", "darkgrey"), confint = list(style = "bars", 
                                                                                                                                                 alpha = 0.15))
artplot2 <- plot(allEffects(art_mod1A), selection=1, multiline= T, main = "", ylab = "ART Score", xlab = "Nativeness", colors = c("black", "darkgrey"), confint = list(style = "bars", alpha = 0.15))

library(gridExtra)
grid.arrange(artplot2, artplot1,  nrow=1,  ncol=2)

谢谢您的帮助!


推荐阅读