r语言 - 使用 2 种不同颜色的线框绘图



我正在使用wireframe函数来获得3D图。由于我使用某些模型进行预测,因此我想在 sime 线框图中绘制观测值和预测值,但我想知道是否可以从预测开始更改颜色。这是我使用此代码获得的结果:

wireframe(grid$mxt~grid$ages*grid$years,
xlab=TeX("$x$"),ylab=TeX("$t$"),zlab=TeX("$log\mu_x(t)"),
drape = TRUE,col="black",
col.regions = colorRampPalette(c("yellow", "red"))(100),
scales = list(arrows=FALSE, cex=0.8, col = "black", font = 1),
aspect=c(1,0.6))

我想要的是改变2011年的表面颜色,以使情节易于理解。我附上数据。谢谢

嗯,我想我部分解决了。线框函数似乎不会用不同的 (x,y( 绘制不同的表面。所以你要做的是扩展数据,以便有两个不同的表面具有相同的(x,y(,但在某个y之前,其中一个包含NA,另一个包含NA。我发布了我使用的代码和结果(好吧,我必须改变颜色,但这很容易(。

这是一个年龄-年图,z 等于年龄和年份的对数死亡率。矩阵mxt1的维度为 (n, n1(,而矩阵 pred 的维度为 (n, n2(;y1 是维度 n1(观测值年份(的向量,而 y2 是维度 n2(预测值年份(的向量。

grid<-expand.grid(list(ages=ages, years=c(y1,y2)))
grid<-rbind(grid,grid)
grid$mxt <- c(cbind(mxt1, matrix(nrow=n,ncol=n2)),
cbind(matrix(nrow=n,ncol=(n1-1)),mxt1[,n1],pred))
grid$group <- factor(c(rep("obs",n*n1+n*n2),rep("for",n*n1+n*n2)))
wireframe(mxt~ages*years,data=grid,
groups=group, col.groups=c("red","green"))

矢量 grid$mxt 第二部分中的技巧是绑定两个表面。结果是这样的。

希望能帮助过某人。

最新更新