本文介绍了保持积分不变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用gganimate记录测试情况下的进度:我到现在为止:

I would like to document the progress in a test situation using gganimate:I have come so far:

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)

颜色和表示首先是次要的.重要的是要学习如何使一个接一个的点动画,而先前的点又不会消失?欢迎任何帮助!谢谢

The colours and representations are of secondary importance at first. It would be important to learn how to animate the points one after the other without the previous points disappearing again?Any help is welcome! Thanks

推荐答案

也许只是创建一个包含先前观察值的数据框,然后使用geom_point添加它:

Maybe just create another dataframe that holds the previous observations, and add it using 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")

这篇关于保持积分不变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 13:39