R

时间:2017-09-04 17:23:42

标签: r plot ggplot2 plotly surface

之前可能已经提出这个问题,我甚至在这里使用了可用的在线教程: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

我明白了:

enter image description here

甚至没有接近我的期望。轴范围甚至看起来都不正确,因为一个应该介于0和1之间,一个介于18和25之间,一个介于0到1之间(整数 - 实际上是0或1)。此外,只有一个表面,而不是4.我不完全确定问题是什么,因为我按照教程。

#############编辑:

我能够在R:

中使用线框创建此图

enter image description here

使用此数据:

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)))

这就是我想要的,以防我的描述没有任何意义。有没有办法在情节上做到这一点?

0 个答案:

没有答案