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

问题描述:

我想绘制一个3d曲面图。这很顺利,但是x和y轴上的值是没有意义的。他们比他们应该高得多。我使用矩阵作为图,x和y值是行和列的名称以及当然是矩阵本身的z值(称为高程)。 Plotly似乎没有使用x和y数据的值。矩阵中的x和y值范围从0到6。这是我的矩阵的一个小样本:Plotly 3d曲线图有不正确的x和y轴值

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

x和y值是正确的。它们显示数据的行数和列数。值m.dune [1,1]'是位置x = 1处的z高度; Y = 1。因此,我假设你的矩阵有一个'dim()'关于'c(70,80)'。比较'plot_ly(z = volcano [1:20,1:20]/100,type =“surface”)'''plot_ly(z = volcano [1:50,1:50]/100,type =“surface “)'。 – Jimbou

+0

嗯,解释了x和y值,任何想法如何显示真正的价值?单元格大小为0.05,也许我可以将单元格大小乘以x和y值? – Marinka

由于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