使用mesh3d类型设置曲线R中的轴范围

时间:2016-07-21 06:43:28

标签: r 3d range axis plotly

我在Mac上使用Rstudio。 我想3dplot表面感谢4个点与他们的笛卡尔坐标。 当我使用:plot_ly(x = x,y = y)时,我能够修正轴的范围。 当使用plot_ly(x = x,y = y,z = z)时,相同的轴测距方法不再起作用。

x = c(0, 1, 1, 0)
y = c(0, 0, 1, 1)
z = c(0, 1, 1, 0)
scene = list(camera = list(eye = list(x=-2.5, y=0.1, z=0.1), center=list(x=0, y=0, z=0), up=list(x=0, y=0, z=1)))
axx <- list(range=c(0, 10), showline=TRUE, linecolor=toRGB("black"))
p <- plot_ly(x = x, y = y, z = z, text = c("M0", "M1", "M2", "M3"),
            type = "mesh3d",
            showscale = FALSE
      ) %>%
    layout(scene=scene, xaxis=axx,  yaxis=axx, zaxis=axx )

很好,我打算使用这个代码在data.frame上循环,看看我的观点的演变。如果我不能在每个绘图迭代上都有相同的比例,那就没有意义了。

for (ind in 1:datalen)
{
  print(ind)
  x = c(0, myCoord$az[ind], myCoord$az[ind], 0)
  y = c(0, 0, 1, 1)
  z = c(0, myCoord$ax[ind], myCoord$ax[ind], 0)
  p <- plot_ly(x = x, y = y, z = z, text = c("M0", "M1", "M2", "M3"),
               type = "mesh3d",
               showscale = FALSE
  ) %>%
    layout(scene=scene, xaxis=bxx,  yaxis=bxx, zaxis=axx )
  print(p)
  Sys.sleep(0.5)
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要使用最新版本的plotly并将轴设置为场景的属性。

例如:

layout.scene = Scene(xaxis=XAxis(title='my x label'),
                     yaxis=YAxis(title='my y label'),
                     zaxis=ZAxis(title='my z label', range=[z_min, z_max]))