r - 如何更改 visreg 中交互图的颜色和线型

标签 r plot regression visualization

我对 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) 

情节如下:

enter image description here
感谢您的帮助。

N

最佳答案

您可以向 visreg 添加 fillline 参数来更改颜色和线条类型。这些选项似乎没有在帮助中得到很好的记录,但是 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)

enter image description here

作为另一种选择,您可以获取 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")

enter image description here

关于r - 如何更改 visreg 中交互图的颜色和线型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48546877/

相关文章:

r - 饼图 ggplot : text directions and graphics are different

mysql - 从 R 连接到 MySQL

r - 保存 Rstudio 面板中已经存在的所有绘图

Excel - 两个图形合二为一(并排)

R 中数据帧的回归循环

R:如果字符串包含点,则 parse_number 失败

python - 如何绘制样本的 PMF?

python - 具有 3 个 y 轴的 Bokeh 服务器无法绘制,但具有 2 个 y 轴。为什么?

r - 使用 R 在逻辑回归中向后消除

r - 套索代码 - 它有什么问题?