之前可能已经提出这个问题,我甚至在这里使用了可用的在线教程:https://plot.ly/r/3d-surface-plots/#multiple-surfaces
但我仍有问题。我想在一个绘图上创建多个曲面,就像我上面链接的教程一样。唯一的区别是我有4个小矩阵如下:
矩阵1(line313C):
0.521025641 18 0
0 25 0
0.914285714 18 1
0.328461538 25 1
矩阵2(第832C行):
0.63 18 0
0.38 25 0
0.99 18 1
0.251578947 25 1
矩阵3(line 730C):
0.107222222 18 0
0.21 25 0
1 18 1
0.549226006 25 1
矩阵4(line380C):
0.13 18 0
0.01 25 0
0.933918129 18 1
0.938421053 25 1
使用以下代码:
cold3Dplot <- plot_ly(showscale = FALSE) %>%
add_surface(z = ~line313C) %>%
add_surface(z = ~line380C, opacity = 0.98) %>%
add_surface(z = ~line730C, opacity = 0.98) %>%
add_surface(z = ~line832C, opacity = 0.98)
cold3Dplot
我明白了:
甚至没有接近我的期望。轴范围甚至看起来都不正确,因为一个应该介于0和1之间,一个介于18和25之间,一个介于0到1之间(整数 - 实际上是0或1)。此外,只有一个表面,而不是4.我不完全确定问题是什么,因为我按照教程。
#############编辑:我能够在R:
中使用线框创建此图使用此数据:
line surv temp stage
313 0.521025641 18 L
313 0 25 L
313 0.914285714 18 A
313 0.328461538 25 A
832 0.63 18 L
832 0.38 25 L
832 0.99 18 A
832 0.251578947 25 A
730 0.107222222 18 L
730 0.21 25 L
730 1 18 A
730 0.549226006 25 A
380 0.13 18 L
380 0.01 25 L
380 0.933918129 18 A
380 0.938421053 25 A
和以下代码:
wireframe(surv~stage*temp, data=cold3D_top4, group=line,
col.groups=c("red","green","blue","purple"),
scales = list(arrows=FALSE, col="black",font=10),
xlab = list("Life Stage",rot=30, mgp=c(2)),
ylab = list("Rearing Temperature",rot=-40),
zlab = list("Survival",rot=90),
zlim = c(0,1),
ylim = c("18","25"),
par.settings = list(regions=list(alpha=0.75)))
这就是我想要的,以防我的描述没有任何意义。有没有办法在情节上做到这一点?