R中的3d表面图与情节

时间:2017-11-22 16:06:37

标签: r plotly

我希望使用R plotly 库来创建x,y,z坐标数据的三维表面图,类似于以下链接所示:

https://plot.ly/r/3d-surface-plots/

plot_ly函数似乎要求z坐标位于维度x * y的矩阵中,如链接示例中使用的 datasets :: volcano 中所示。我对如何构建这个矩阵有一些指导。这是我的样本x,y坐标数据:

## x coordinates
xSeq = seq(0, 1, .01)
## y coordinates
ySeq = seq(0, 1, .01)
## list with x, y coordinates
exmplList = list(x = xSeq, y = ySeq)

z坐标将通过x,y对的公式计算(此处使用的示例公式为x + y)。我玩过类似的东西:

exmplList = within(exmplList, z <- matrix(x + y, nrow = length(xSeq), ncol = length(ySeq)))

但这并没有实现我想要实现的对组合。

1 个答案:

答案 0 :(得分:0)

绘图表面需要一个矩阵,因此您可以直接使用此位:

z = matrix(xSeq + ySeq, nrow = length(xSeq), ncol = length(ySeq))

代替列表。因此,通过运行以下代码:

## x coordinates
xSeq = seq(0, 1, 0.01)
## y coordinates
ySeq = seq(0, 1, 0.01)
## list with x, y coordinates
z = matrix(xSeq + ySeq, nrow = length(xSeq), ncol = length(ySeq))

fig = plot_ly(z = ~z) %>% add_surface()
fig

一个获得以下图: 3D Plot

您可能需要单击并旋转一点以查看平面。希望能有所帮助,欢呼。