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中是否可行。