Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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 使用滑块绘制三维图形,以控制绘制的点数_R_Matlab_Plot_Graph_Interactive - Fatal编程技术网

R 使用滑块绘制三维图形,以控制绘制的点数

R 使用滑块绘制三维图形,以控制绘制的点数,r,matlab,plot,graph,interactive,R,Matlab,Plot,Graph,Interactive,我有数据,这是一个物体在三维空间的运动在固定的时间间隔。数据如下: Time X Y Z 1 1 1 1 2 2 1 2 3 2 0 1 4 3 2 1 ..... (x,y,z)是时间t时物体的位置。我想画一个3D图形,它显示物体在3D空间中的完整运动,但要有一个滑块或类似的东西,在这里我可以选择一个时间范围(比如500到750),并看到物体在3D空间中的运动。所以,这里我们有4个维度:x,y,z是位置,时间是第4维,

我有数据,这是一个物体在三维空间的运动在固定的时间间隔。数据如下:

Time  X   Y   Z
1     1   1   1
2     2   1   2
3     2   0   1
4     3   2   1
.....
(x,y,z)是时间t时物体的位置。我想画一个3D图形,它显示物体在3D空间中的完整运动,但要有一个滑块或类似的东西,在这里我可以选择一个时间范围(比如500到750),并看到物体在3D空间中的运动。所以,这里我们有4个维度:x,y,z是位置,时间是第4维,使用一个滑块来控制在该时间点的绘制。[下面Mathematica中的示例给出了一个很好的想法]

让它更清楚。我们首先绘制对象在3D空间中从时间1到N的完整运动。然后,通过控制滑块,我们绘制同一对象在t1到t2时间戳之间的运动。显示滑块的时间也很重要(因为我必须根据运动记录一些感兴趣的时间戳)

我在谷歌上搜索过同样的例子,但没有一个例子能让我得到我想要的。所有这些都将滑块绑定到一个轴变量(比如x或y,可能是时间),但我们必须将其绑定到第四维度,时间。动态图很有前途,但我有类似的问题,正如上面所讨论的(同样,没有发现任何3d支持)

。但我没有执照。它只是移动三维路径上的一个点。这也可以解决我的问题,但我应该能够在暂停时知道时间戳的值

R中的解决方案对我来说很好,因为它没有任何许可问题。或者在Matlab中,如果它不使用任何高级可视化工具箱。或者Python


提前感谢。

这是一个原始示例,可以根据需要进行自定义。它使用
操纵
plot3D

library(manipulate)
library(plot3D)

min_time <- 1
max_time <- 100
time_interval <- min_time:max_time

# Create data frame
DF <- data.frame(t = time_interval)

# Time parametric functions
X <- function(t) {
  return(2 * t)
}

Y <- function(t) {
  return(t ** 2)
}

Z <- function(t) {
  return(10 * cos(t / 100))
}
# Update data frame
DF$x <- sapply(DF$t, X)
DF$y <- sapply(DF$t, Y)
DF$z <- sapply(DF$t, Z)

# Use manipulate with RStudio
manipulate({
  lines3D(x = DF$x, y = DF$y, z = DF$z)
  scatter3D(
    x = DF$x[t],
    y = DF$y[t],
    z = DF$z[t],
    add = TRUE
  )
}, t = slider(min_time, max_time))
库(操作)
图书馆(plot3D)

这次很接近了。它能在任何情况下为运动设置动画吗?因为我必须手动将滑块移动到每个位置,然后等待指针移动。我可能期望更多,但这对我有帮助。再次感谢!另外,我实际上想根据时间界限重新绘制绘图,这样我就可以看到物体的运动。另外:事实上,这个图没有多大帮助。我需要画出物体在t1到t2之间的运动。或者一个动画,它可以帮助我找到t1到t2,同时观察它所走的路径(在Mathematica示例中,已经有了路径跟踪是必要的)。此外,我无法旋转轴以从不同角度观察。所有这些都对我的工作至关重要,因为我必须在很长一段时间内观察到这一点,比如说在一个小区域内观察1500个时间戳,因此,运动中会有很多重叠的位置。这就是为什么我对我的需求很挑剔或严格,我甚至不确定这在R或python中是否可行。