Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Plotly 3d曲面图的x轴和y轴值不正确_R_Plotly - Fatal编程技术网

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

R Plotly 3d曲面图的x轴和y轴值不正确,r,plotly,R,Plotly,我想用plotly制作一个3d曲面图。这进行得很顺利,但是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

我想用plotly制作一个3d曲面图。这进行得很顺利,但是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
dune.plot%
布局(
场景=列表(
xaxis=list(title='x(m)'),
yaxis=列表(title='y(m)'),
zaxis=列表(标题=(m)高程)
沙丘区
图表是这样的,x轴和y轴不正确,我不确定如何获得正确的值


正如Jimbou在他的评论中指出的,x轴和y轴上的值是矩阵的行数和列数。因为我的单元格大小为0.05,所以这些值并不代表正确的距离。要显示正确的距离,必须将正确的x和y值作为列表添加到plotly graph中。这些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

y x和y值是正确的。它们显示数据的行数和列数。值
m.dune[1,1]
是x=1位置的z高度;y=1。因此,我假设你的矩阵有一个关于
c(70,80)
dim()。比较
plot\u ly(z=volcano[1:20,1:20]/100,type=“surface”)
plot\u ly(z=volcano[1:50,1:50]/100,type=“surface”)
。这解释了x和y值,知道如何显示真实值吗?单元格大小是0.05,也许我可以用x和y值乘以单元格大小?