我对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"
}
以下是情节的样子:
<磷>氮答案 0 :(得分:1)
您可以向fill
添加line
和visreg
个参数,以更改颜色和线条类型。这些选项似乎没有在帮助中有详细记录,但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)
作为另一种选择,您可以获取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")