Plotly 3d 曲面图的 x 和 y 轴值不正确
Plotly 3d surface graph has incorrect x and y axis values
我想用 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
图形看起来像这样,x 轴和 y 轴不正确,我不确定如何才能获得正确的值。
正如 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
我想用 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
图形看起来像这样,x 轴和 y 轴不正确,我不确定如何才能获得正确的值。
正如 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