【问题标题】:How do I change the colors and line types of interaction plots in visreg如何更改 visreg 中交互图的颜色和线型
【发布时间】:2018-07-10 20:11:21
【问题描述】:

我对 R 比较陌生,我正在使用 visreg 包来绘制交互。我无法弄清楚如何获取输出图,它默认在 x2 的第 10、第 50 和第 90 分位数处绘制 x1 与 y 的关系,并将颜色更改为灰度,并将三行更改为三个不同的行类型(虚线、实线、双虚线等)

这是我的代码:

    interaction <- lm(Y ~ X1 * X2, data=df)

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

这就是情节的样子:


感谢您的帮助。

没有

【问题讨论】:

    标签: r plot regression visualization


    【解决方案1】:

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

    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 包含我们绘制所需的拟合信息,因此我们将其与ggplot 一起使用。

    我喜欢这个比visreg 图好一点,因为(1)这些线都可以绘制在置信带之上,这样它们就不会被置信带遮盖,并且(2)你可以为置信带添加一个微妙的边界,使它们更容易区分。我也更喜欢 ggplot 图例。

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

    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")
    

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多