【发布时间】:2022-01-11 11:58:36
【问题描述】:
我有一个这样的模型
lmer(response ~ poly(pred1, 2) * poly(pred2, 2) * grouping_variable ...)
由于我的分组变量有两个级别,我想在一个图中绘制两个 3D 图形,如下所示:
这是使用 car 包中的 scatter3d 完成的。不幸的是,没有选择绘制自己的模型。有一些选项可供选择(线性、二次等),但我想绘制我的模型。
我能够使用 plot3D 包中的 scatter3D 绘制我自己的模型,但我找不到绘制分组变量两个级别的选项。
您有什么想法,我该如何实现这一目标?
以下是一些示例数据(我不擅长模拟数据,但我认为应该可以):
library(car)
library(dplyr)
X <- seq(76, 135) + rnorm(sd = 2, n = 60)
Y <- seq(65, 365, length.out = 60) + rnorm(sd = 4, n = 60)
Test.grid <- expand.grid(X = X, Y = Y)
Test.grid$A <- 1
Test.grid$Z <- 2*X + 0.5*Y
df1 <- sample_n(Test.grid, 60)
df2 <- df1 %>% mutate(A = 2, Y = Y + 50)
Test <- rbind(df1, df2)
X <- Test$X
Y <- Test$Y
Z <- Test$Z
scatter3d(x=X, y=Y, z=Z, groups = as.factor(Test$A), grid = FALSE, fit = "linear", surface.col = c("red", "black"))
【问题讨论】:
-
这会有帮助吗?
plot3D::scatter3D(x=X, y=Y, z=Z, colvar = Test$A)。colvar可以定义每组的颜色。 -
感谢 xiliam。我可以用它为 2 个颜色组中的点着色,但我想绘制 2 个模型。所以我的目标是在一个情节中的两个彩色区域。