Plotly 3d曲面图具有不正确的x和y轴值

时间:2016-09-19 15:07:19

标签: r plotly

我想用图表制作一个三维表面图。这很顺利,但是x和y轴上的值没有意义。它们比它们应该高得多。我使用矩阵作为绘图,x和y值是行名和列名,z值(称为高程)当然是矩阵本身。 Plotly似乎没有使用x和y数据的值。矩阵中的x和y值范围为0到6。这是我的矩阵的一小部分样本:

head(m.dune)    
>       1.90 1.95 2    2.05 2.01 2.15 
> 0     NA   NA   NA   NA   NA   NA
> 0.05  NA   NA   NA   NA   NA   NA
> 0.10  1.14 1.14 NA   NA   NA   NA
> 0.15  1.15 1.15 1.15 1.15 1.16 1.16
> 0.20  1.16 1.16 1.16 1.16 1.16 1.17
> 0.25  1.17 1.17 1.17 1.17 1.18 1.18

这是我一直在使用的代码:

dune.plot <- plot_ly(z = m.dune, type = "surface") %>%
layout(
  scene=list(
    xaxis=list(title='x (m)'),
    yaxis=list(title='y (m)'),
    zaxis=list(title='Elevation (m)')))
dune.plot

图表看起来像这样,x轴和y轴不正确,我不知道如何获得正确的值。

3d surface plot

1 个答案:

答案 0 :(得分:4)

正如Jimbou在他的评论中指出的那样,x和y轴上的值是矩阵的行数和列数。由于单元格大小为0.05,因此值不代表正确的距离。要显示正确的距离,您必须在绘图图中将正确的x和y值添加为列表。这些x和y值必须具有相同的大小,否则图形的一部分将被截止。获取正确的x和y值的代码如下:

y <- x <- as.numeric(rownames(m.dune))
# More rows than column, and the x and y should have the same size

dune1.plot <- plot_ly(z = m.dune1, x= x, y=y, type = "surface") %>%
layout(
  scene=list(
    xaxis=list(title='x (m)'),
    yaxis=list(title='y (m)'),
    zaxis=list(title='Elevation (m)')))
dune1.plot