1

I'm looking for an efficient way to plot time, x, y, z with different colors for different objects - to view proximity of the objects over time.

plot3D::line3D works with add = TRUE, but it is not very elegant. Here's a sample code that works:

data$object_id <- factor(data$object_id)
library(plot3D)
for(tr in unique(data$object_id)) {
    lines3D(data$x[data$object_id == tr], data$y[data$object_id == tr], data$z[data$ba object_id ll == tr], add = T, col = data$object_id[data$object_id == tr])
}

Example data:

data <- data.frame(object_id = c(1, 1, 2, 2), t = c(0, 1, 0, 1), x = c(0, 1, 1, 0), y = c(0, 1, 1, 0), altitude = c(0, 1, 1, 0))

Desired result: path traced by different objects at a given time along with an arrow that indicates the current direction of heading (determined by joining the last 2 known positions).

At time t = 0, this should yield nothing or should yield points. At t = 1, this should yield 2 lines (one over the other) of different colors: one color for each object.

2D equivalent is ggplot2::geom_path, which does all the heavy-lifting using group parameter which joins all the paths by the grouping variable.

4

0 回答 0