我想同时对许多粒子的位置进行动画处理
假设我们有:
df <- data.frame(
x = c(1,2,3,4,5,6,7,8,9,10),
y = c(2,3,4,5,6,7,8,9,10,1),
particle = c(1,1,2,3,1,3,1,3,2,1),
time = 1:10 )
表示:时间1中的粒子1位于位置(x = 1,y = 2) 然后在时间2等位置到达(x = 2,y = 3)的位置。
粒子2在时间3的位置(x = 3,y = 4)出现,并在时间9移至其他位置。
等
我已经尝试过了
ggplot(df, aes(x, y), show.legend=FALSE) +
geom_point() +
transition_states(time)
但是动画只能同时显示一个粒子。
如何为所有粒子设置动画(在示例中,三个粒子必须一直可见)
thkx。
bt。
答案 0 :(得分:4)
如果要保持所有粒子可见,则必须在每个时间点为每个粒子创建行(可以在粒子2和3出现之前省略行)。使用tidyverse
:
library(tidyverse)
expanded = df %>%
# Create rows for each combination of particle and time
complete(particle, time) %>%
group_by(particle) %>%
arrange(time) %>%
# Fill missing x and y with the current position, up to
# the next change for that particle
fill(x, y, .direction = "down")
# Make particle a factor
ggplot(expanded, aes(x, y, colour = factor(particle))) +
geom_point() +
transition_states(time)
结果:
答案 1 :(得分:0)
谢谢你们的帮助
我到达了此解决方案:
procedure Query_MYREC
(MYREC_Value : MYREC;
Process : not null access procedure (Pinned_MYREC : String))
is
Pinned_MYREC : String (1 .. MYREC_Value.n)
with Import, Address => MYREC_Value.str;
begin
Process.all (Pinned_MYREC);
end Query_MYREC;