R 中的 3D 图和 grid.arrange
3D plots and grid.arrange in R
我正在尝试绘制三个 3D 图并同时显示所有三个。对于其他图,我一直在使用 gridExtra 包中的 grid.arrange 函数。但是,我的 3D 图出现错误。我得到的错误是:"Error in gList(list(xyz.convert = function (x, y = NULL, z = NULL) : only 'grobs' allowed in "gList""
我的代码看起来像这样:
cont1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
pre1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
post1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
library(scatterplot3d)
attach(as.data.frame(cont1))
p<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
p$plane3d(fit)
attach(as.data.frame(pre1))
l<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
l$plane3d(fit)
attach(as.data.frame(post1))
m<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
m$plane3d(fit)
require(gridExtra)
grid.arrange(p,l,m)
我该如何解决这个问题?
我不确定 grid.arrange
是否可以与 ggplot2 绘图一起使用...这是一个使用 par
的潜在解决方案。如果你想要一个 1x3 排列集 mfrow=c(1,3)
或 3x1,mfrow=c(3,1)
library(gridExtra)
library(scatterplot3d)
cont1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
pre1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
post1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
par(mfrow=c(2,2))
p<-with(cont1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
p$plane3d(fit)
l<-with(pre1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
l$plane3d(fit)
m<-with(post1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
m$plane3d(fit)
我正在尝试绘制三个 3D 图并同时显示所有三个。对于其他图,我一直在使用 gridExtra 包中的 grid.arrange 函数。但是,我的 3D 图出现错误。我得到的错误是:"Error in gList(list(xyz.convert = function (x, y = NULL, z = NULL) : only 'grobs' allowed in "gList""
我的代码看起来像这样:
cont1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
pre1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
post1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
library(scatterplot3d)
attach(as.data.frame(cont1))
p<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
p$plane3d(fit)
attach(as.data.frame(pre1))
l<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
l$plane3d(fit)
attach(as.data.frame(post1))
m<-scatterplot3d(X1,X2,X3, main="3D Scatterplot")
fit <- lm(X3 ~ X1+X2)
m$plane3d(fit)
require(gridExtra)
grid.arrange(p,l,m)
我该如何解决这个问题?
我不确定 grid.arrange
是否可以与 ggplot2 绘图一起使用...这是一个使用 par
的潜在解决方案。如果你想要一个 1x3 排列集 mfrow=c(1,3)
或 3x1,mfrow=c(3,1)
library(gridExtra)
library(scatterplot3d)
cont1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
pre1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
post1<-data.frame(matrix(rnorm(300), nrow=10, ncol=3))
par(mfrow=c(2,2))
p<-with(cont1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
p$plane3d(fit)
l<-with(pre1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
l$plane3d(fit)
m<-with(post1, scatterplot3d(X1,X2,X3, main="3D Scatterplot"))
fit <- lm(X3 ~ X1+X2)
m$plane3d(fit)