首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在visreg中更改交互图的颜色和线型

如何在visreg中更改交互图的颜色和线型
EN

Stack Overflow用户
提问于 2018-02-01 00:26:29
回答 1查看 3.9K关注 0票数 2

我对R比较陌生,我正在使用visreg包来绘制交互。我不知道如何使用输出图,它默认是在x2的第10、50和90个分位数处绘制y上x1的关系,并将颜色更改为灰度,将这三条线更改为三种不同的线型(虚线、实线、双划线等)。

下面是我的代码:

代码语言:javascript
复制
    interaction <- lm(Y ~ X1 * X2, data=df)

    visreg(interaction,"X1", by="X2", 
    overlay = TRUE, partial = FALSE, rug = FALSE) 

下面是图中所示:

谢谢你的帮助。

N

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 02:16:08

您可以将fillline参数添加到visreg以更改颜色和线型。这些选项在帮助中似乎没有很好的文档记录,但是visreg vignette有一个示例(向下滚动到“点、线和带的外观”)。下面是一个使用内置mtcars数据框架的示例。

代码语言:javascript
复制
library(visreg)

interaction <- lm(mpg ~  hp*wt , data=mtcars)

visreg(interaction,"hp", by="wt", 
       fill=list(col=grey(c(0.2,0.5,0.8), alpha=0.4)),
       line=list(lty=1:3, col="black"),
       overlay = TRUE, partial = FALSE, rug = FALSE)

作为另一种选择,您可以获取visreg返回的数据,并使用它来创建符合您的规范的ggplot。

首先,我们创建一个visreg图,并将其分配给一个名为p的对象。plot=FALSE会阻止绘制绘图。p包含visreg以不可见方式返回的信息列表。其中一个称为fit的元素包含了绘图所需的fit信息,因此我们将在ggplot中使用它。

visreg图相比,我更喜欢这一点,因为(1)这些线都可以绘制在置信区间的顶部,这样它们就不会被置信区间所遮挡,(2)您可以在置信区间中添加一个微妙的边界,使它们更容易区分。我也更喜欢ggplot的传说。

我应该指出的是,您可以直接从数据和模型对象创建ggplot交互图,而不使用visreg,但是visreg返回了我们需要的所有信息,而不需要进行任何额外的编码。

代码语言:javascript
复制
library(ggplot2)

p = visreg(interaction,"hp", by="wt",
           overlay = TRUE, partial = FALSE, rug = FALSE,
           plot=FALSE)

ggplot(p$fit, aes(hp, visregFit, linetype=factor(wt), fill=factor(wt))) +
  geom_ribbon(aes(ymin=visregLwr, ymax=visregUpr), alpha=0.5, 
              colour="grey50", linetype=1, size=0.2) +
  geom_line() +
  scale_fill_grey(start=0.5, end=0.8) +
  labs(linetype="Weight", fill="Weight")

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48546877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档