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

时间:2018-01-31 16:26:29

标签: r plot regression visualization

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

这是我的代码:

variable "logging" {
     target_bucket= "xxxx"
}

resource "aws_s3_bucket" "log_bucket" {
  bucket = "${var.bucket}-${var.env}"
  logging = ["${var.logging}"]


module "redshift-dev" {
  source                      = "../modules/xxxx"
  env                         = "dev"
  region                      = "us-east-1"
  logging                     = {}

module "redshift-prod" {
  source                      = "../modules/xxxx"
  env                         = "prod"
  region                      = "us-east-1"
  logging                     = {
     target_bucket= "xxxx"
}

以下是情节的样子:

enter image description here
谢谢你的帮助。

<磷>氮

1 个答案:

答案 0 :(得分:1)

您可以向fill添加linevisreg个参数,以更改颜色和线条类型。这些选项似乎没有在帮助中有详细记录,但visreg vignette有一个例子(向下滚动到&#34;点,线和带的外观&#34;)。以下是使用内置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