r - 如何使用 geom_point 在 gganimate 中创建状态之间的平滑过渡?
问题描述
我正在尝试使用 gganimate 创建动画情节。
当我将以下因子 dat$period 传递给 transition_states 时,
我得到 3 个静态图像。我宁愿让点从一个州到另一个州“移动”。
这是我的代码:
plot <-
ggplot(data = dat, aes(x = age, y = value, color = period)) +
geom_point(size = 3, aes(group = period)) +
facet_wrap(~group)+
transition_states(states=period, transition_length = 2, state_length = 1) +
ease_aes('linear')+
enter_fade()+
exit_fade()
plot
这是我的数据:
record period value age group
1 1 start 45 24 a
2 2 start 6 22 c
3 3 start 23 32 b
4 4 start 67 11 a
5 1 middle 42 24 a
6 2 middle 65 22 c
7 3 middle 28 32 b
8 4 middle 11 11 a
9 1 end 23 24 a
10 2 end 14 22 c
11 3 end 34 32 b
12 4 end 21 11 a
13 5 start 5 12 c
14 6 start 9 23 c
15 7 start 53 47 b
16 8 start 17 32 a
17 5 middle 15 12 c
18 6 middle 6 23 c
19 7 middle 23 47 b
20 8 middle 67 32 a
21 5 end 51 12 c
22 6 end 16 23 c
23 7 end 8 47 b
24 8 end 41 32 a
点出现/消失 - 我希望点在状态之间的屏幕上移动 - 任何帮助表示赞赏
解决方案
美学用于确定每个时期数据中的group
哪些行被视为相同的对象。你需要group = record
在这里:
ggplot(data = dat, aes(x = age, y = value, color = period)) +
geom_point(size = 3, aes(group = record)) +
facet_wrap(~ group)+
transition_states(states=period, transition_length = 2, state_length = 1) +
ease_aes('linear')+
enter_fade()+
exit_fade()
推荐阅读
- c# - NET 5 和 EF:如何在服务中使用 AddPooledDbContextFactory 代替 DbContext
- javascript - 打字稿:'string | 类型的参数 undefined' 不能分配给“string”类型的参数
- php - Laravel 将 JPEG 评估为 mime 类型的 application/octet-stream 但 php 和 ubuntu 正确地声明了 image/jpeg
- mysql - 有没有办法在mysql的where子句中使用像min这样的sql函数作为值?
- javascript - NextJS:我是否需要使用 getInitialProps 和 next-redux-wrapper 来向所有页面共享状态?
- python - 如何将变量放入 tn.write?
- azure - 您可以在虚拟网络 DMZ 中拥有事件中心吗?
- database - 当我们需要在 Cassandra 中进行压缩时?
- java - 如果在流中找到任何匹配项,则将数据设置为列表中第一个对象的内部对象
- git - 如何在不丢失更改的情况下取消提交所有未推送的 git 提交