【问题标题】:I want to create an object to be used for drawing a 3D surface in R我想创建一个用于在 R 中绘制 3D 表面的对象
【发布时间】:2017-11-03 23:30:37
【问题描述】:

我正在尝试创建一个对象以基于此绘制 3D 表面,

tmp <- matrix(10:39, nrow = 3, ncol = 10)
x <- 10:12
y <- 20:30

tmp[x,y] 是 z

我应该如何创建这样的对象?

【问题讨论】:

  • 你可以使用plotly:plot.ly/r/3d-surface-plots
  • 你说的tmp[x,y]是什么意思是z
  • 只是一个变量
  • 我知道plotly,问题是如何创建数据对象以将其传递给plotly。

标签: r dataframe plot 3d surface


【解决方案1】:

这是一个例子:

library(plotly)

tmp <- matrix(10:39, nrow = 3, ncol = 10)
x <- 10:12
y <- 20:30


plot_ly(x = x, y = y ) %>% 
  add_surface(z = t(tmp)) #transpose it

【讨论】:

  • 感谢您的回答。但是,我很难理解为什么我们应该转置 tmp。假设 z 是 f(x,y) 形成一个对象以将其传递给 plot_ly 以在 x,y,z 空间中绘制 3d 图的最佳方法是什么?
  • @Mehdi Zare 将 z 矩阵的列视为 x,将行视为 y:z ~ f(y, x)。您可以查看data(volcano)this。火山矩阵有 87 行和 61 列,y 值的范围对应于行,x 值的范围对应于列。事实上,对于曲面图,甚至不需要指定 x 和 y 变量,只需将 z 矩阵传递给add_surface
猜你喜欢
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
相关资源
最近更新 更多