Was*_*hoi 5 r ggplot2 gganimate
我想使用 gganimate 记录测试情况下的进度:到目前为止:
library(tidyverse)
library(gganimate)
data <- tribble(~user, ~agree, ~accord, ~messung,
"1", .8, .9, 1,
"2",.7, .8, 1,
"3", .6, .9, 1)
data2 <- tribble(~user, ~agree2, ~accord2, ~messung2,
"1", .4, .7, 2,
"2", .5, .9, 2,
"3", .9, .9, 2)
data%>%
left_join(data2)%>%
mutate(user = as.numeric(user))%>%
ggplot(aes(x = accord, y = agree))+
geom_point(aes(fill = "grey"), color = "grey", size = 2)+
geom_point(aes(x = accord2, y = agree2), color = "green",
size = 2)+
xlim(0,1)+
ylim(0,1)+
geom_segment(aes(x = accord,
y = agree,
xend = accord2,
yend = agree2),
size = 0.5, arrow = arrow(type="closed", length =
unit(.08, "inches"), angle = 30),
color = "grey")+
theme_minimal()+
guides(fill=FALSE, color=FALSE)+
transition_manual(user)
Run Code Online (Sandbox Code Playgroud)
起初,颜色和表现是次要的。学习如何将点一个接一个地制作动画而不会使之前的点再次消失很重要吗?欢迎任何帮助!谢谢
我无法使用 transition_manual 使其工作,但您可以使用 transition_states 获得所需的输出。如果你不想过渡,你可以将 transition_length 设置为零。
data%>%
left_join(data2)%>%
mutate(user = as.numeric(user)) %>%
ggplot() +
geom_point(aes(x = accord, y = agree), color = "grey", size = 2, fill = "grey") +
geom_point(aes(x = accord2, y = agree2), color = "green", size = 2)+
xlim(0,1)+ ylim(0,1)+
geom_segment(aes(x = accord, y = agree, xend = accord2, yend = agree2),
size = 0.5, color = "grey",
arrow = arrow(type="closed", length = unit(.08, "inches"), angle = 30))+
theme_minimal() +
# Use zero for "transition_length" to remove animation easing altogether
transition_states(user, transition_length = 1, state_length = 2) +
# shadow_mark(exclude_layer = 3) # This hides the arrow from animating
shadow_mark()
Run Code Online (Sandbox Code Playgroud)
也许只是创建另一个包含先前观察结果的数据框,并使用以下命令添加它geom_point
:
## Your example:
dat <- data %>%
left_join(data2) %>%
mutate(user = as.numeric(user))
ggplot(dat) +
geom_point(aes(x = accord, y = agree)) +
geom_point(aes(x = accord2, y = agree2), color = "green") +
xlim(0, 1) +
ylim(0, 1) +
geom_segment(aes(
x = accord,
y = agree,
xend = accord2,
yend = agree2
)) +
transition_manual(user) -> p
# Now add:
rows <- unlist(sapply(2:nrow(dat), seq))
cols <- grep("agree|accord", names(dat), val = T)
df_points <- dat[rows, cols]
df_points$user <- rep(dat$user[-1], 2:nrow(dat))
p +
geom_point(aes(x = accord, y = agree), df_points) +
geom_point(aes(x = accord2, y = agree2), df_points, color = "green")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1910 次 |
最近记录: |