根据Z轴创建带颜色的三维打印 库(侦探2) mlr
我修改了你的代码根据Z轴创建带颜色的三维打印 库(侦探2) mlr,r,3d,plot,R,3d,Plot,我修改了你的代码 library(Sleuth2) mlr<-lm(ex1222$Buchanan2000~ex1222$Perot96*ex1222$Gore2000) for (i in 0:3) { assign(paste("betaHat", i, sep=""), summary(mlr)$coeff[i+1,1]) } x<-sort(ex1222$Perot96) y<-so
library(Sleuth2)
mlr<-lm(ex1222$Buchanan2000~ex1222$Perot96*ex1222$Gore2000)
for (i in 0:3) {
assign(paste("betaHat", i, sep=""),
summary(mlr)$coeff[i+1,1])
}
x<-sort(ex1222$Perot96)
y<-sort(ex1222$Gore2000)
z1 <- outer(x, y, function(a,b) betaHat0+betaHat1*a+betaHat2*b+betaHat3*a*b)
nrz <- nrow(z)
ncz <- ncol(z)
# Create a function interpolating colors in the range of specified colors
jet.colors <- colorRampPalette( c("blue", "red") )
# Generate the desired number of colors from this palette
nbcol <- 100
color <- jet.colors(nbcol)
# Compute the z-value at the facet centres
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
# Recode facet z-values into color indices
facetcol <- cut(zfacet, nbcol)
persp(x, y, z1, col=color[facetcol],theta=-30, lwd=.3,xlab="Perot 96", ylab="Gore 2000", zlab="Predicted Votes for Buchanan")
使用data
参数通常比使用通过$
从数据帧中提取的预测变量更好:
library(Sleuth2)
如果您希望在观察的位置评估面,您可以使用
perot我稍微修改了您的代码
library(Sleuth2)
mlr<-lm(ex1222$Buchanan2000~ex1222$Perot96*ex1222$Gore2000)
for (i in 0:3) {
assign(paste("betaHat", i, sep=""),
summary(mlr)$coeff[i+1,1])
}
x<-sort(ex1222$Perot96)
y<-sort(ex1222$Gore2000)
z1 <- outer(x, y, function(a,b) betaHat0+betaHat1*a+betaHat2*b+betaHat3*a*b)
nrz <- nrow(z)
ncz <- ncol(z)
# Create a function interpolating colors in the range of specified colors
jet.colors <- colorRampPalette( c("blue", "red") )
# Generate the desired number of colors from this palette
nbcol <- 100
color <- jet.colors(nbcol)
# Compute the z-value at the facet centres
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
# Recode facet z-values into color indices
facetcol <- cut(zfacet, nbcol)
persp(x, y, z1, col=color[facetcol],theta=-30, lwd=.3,xlab="Perot 96", ylab="Gore 2000", zlab="Predicted Votes for Buchanan")
使用data
参数通常比使用通过$
从数据帧中提取的预测变量更好:
library(Sleuth2)
如果您希望在观察位置评估面,可以使用中的perot示例4?persp
标题为“与z值对应的表面颜色”,并演示您所要求的内容。根据您自己的数据进行调整应该不会太难。好建议。我会调查这个,调查那个例子。这有点像我想要的,但他们使用两种颜色。我想要一种单色。你可以尝试一些类似这样的调色板:plot(1:20,pch=16,col=colorrmppalete(c(“白色”、“蓝色”))(20),cex=3)
plot(1:20,pch=16,col=colorrmppalete(蓝色9)(20),cex=3)
。一旦你找到了一个你喜欢的,你可以把它分到persp()
调用中。(colorRampPalette()。根据您自己的数据进行调整应该不会太难。好建议。我会调查这个,调查那个例子。这有点像我想要的,但他们使用两种颜色。我想要一种单色。你可以尝试一些类似这样的调色板:plot(1:20,pch=16,col=colorrmppalete(c(“白色”、“蓝色”))(20),cex=3)
plot(1:20,pch=16,col=colorrmppalete(蓝色9)(20),cex=3)
。一旦你找到了一个你喜欢的,你可以把它分到persp()
调用中。(colorRampPalette()
一开始有点难学,因为它本身返回的是一个函数,而不是一个调色板,但一旦你掌握了窍门,它就相当酷。)Ben你获取模型预测的方法肯定比我使用的方法更巧妙!谢谢你的帮助。我想我更喜欢将原始数据保留在绘图中,因为它可以让你更多地了解我的感受。通过“对图的可读性不太满意”,我想我觉得用一个二维图来显示这个在响应面上具有不同曲率的三维模型是不可避免的尴尬。一个可以点击并拖动以旋转图片的绘图将非常棒。再次感谢!嗯,你并没有真正保留“原始数据”——只是x和y位置。请参见编辑。无论是rgl::persp3d
还是car:scatter3d
都将为您提供动态透视图…再次感谢!由于某些原因,我在将“rgl”软件包加载到mac电脑时遇到了一些困难。总的来说,这似乎是当前的一个问题。我同意这不是原始数据,也许你的方法更好。本,你获得模型预测的方法肯定比我使用的方法更巧妙!谢谢你的帮助。我想我更喜欢将原始数据保留在绘图中,因为它可以让你更多地了解我的感受。通过“对图的可读性不太满意”,我想我觉得用一个二维图来显示这个在响应面上具有不同曲率的三维模型是不可避免的尴尬。一个可以点击并拖动以旋转图片的绘图将非常棒。再次感谢!嗯,你并没有真正保留“原始数据”——只是x和y位置。请参见编辑。无论是rgl::persp3d
还是car:scatter3d
都将为您提供动态透视图…再次感谢!由于某些原因,我在将“rgl”软件包加载到mac电脑时遇到了一些困难。总的来说,这似乎是当前的一个问题。我同意这不是原始数据,也许你的方式更好。
pframe <- with(ex1222,expand.grid(Perot96=perot,Gore2000=gore))
mlrpred <- predict(mlr,newdata=pframe)
nrz <- length(perot)
ncz <- length(gore)
z <- matrix(mlrpred,nrow=nrz)
jet.colors <- colorRampPalette( c("#ffcccc", "#cc0000") )
# Generate the desired number of colors from this palette
nbcol <- 100
color <- jet.colors(nbcol)
# Compute the z-value at the facet centres
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
# Recode facet z-values into color indices
facetcol <- cut(zfacet, nbcol)
persp(perot, gore, z,
col=color[facetcol],theta=-30, lwd=.3,
xlab="Perot 96", ylab="Gore 2000", zlab="Predicted Votes for Buchanan")
library(rgl)
## see ?persp3d for discussion of colour handling
vertcol <- cut(z, nbcol)
persp3d(perot, gore, z,
col=color[vertcol],smooth=FALSE,lit=FALSE,
xlab="Perot 96", ylab="Gore 2000", zlab="Predicted Votes for Buchanan")
library(car)
scatter3d(Buchanan2000~Perot96*Gore2000,data=ex1222)