作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用Github上的Wiki上的this示例:
airq <- airquality
airq$Month <- format(ISOdate(2004,1:12,1),"%B")[airq$Month]
ggplot(airq, aes(Day, Temp, group = Month)) +
geom_line() +
geom_segment(aes(xend = 31, yend = Temp), linetype = 2, colour = 'grey') +
geom_point(size = 2) +
geom_text(aes(x = 31.1, label = Month), hjust = 0) +
transition_reveal(Month, Day) +
coord_cartesian(clip = 'off') +
labs(title = 'Temperature in New York', y = 'Temperature (°F)') +
theme_minimal() +
theme(plot.margin = margin(5.5, 40, 5.5, 5.5))
geom_reveal
没有可用的
state_length
或
transition_length
参数,因此我不确定是否可行。
最佳答案
从OP:
编辑:包作者提到有可能[执行此操作],但我不这样做
知道他指的是什么“披露时机”论点。
在Twitter上,Thomas Lin Pedersen was referring了解transition_reveal
行如何驱动动画的帧。因此,我们可以为它提供一个变量,使其成为动画的“心跳”,同时保留绘图的原始变量。
我的第一种方法是创建一个新变量reveal_time
,这将成为心跳。我会在暂停点增加更多的时间,以便动画在这些数据点上花费更多的时间。在这里,我通过在暂停点的日期添加10,而在其他日期仅添加1。
library(dplyr)
airq_slowdown <- airq %>%
group_by(Month) %>%
mutate(show_time = case_when(Day %in% c(10,20,31) ~ 10,
TRUE ~ 1),
reveal_time = cumsum(show_time)) %>%
ungroup()
transition_reveal
行。
library(gganimate)
a <- ggplot(airq_slowdown, aes(Day, Temp, group = Month)) +
geom_line() +
geom_segment(aes(xend = 31, yend = Temp), linetype = 2, colour = 'grey') +
geom_point(size = 2) +
geom_text(aes(x = 31.1, label = Month), hjust = 0) +
transition_reveal(reveal_time) + # Edit, previously had (Month, reveal_time)
coord_cartesian(clip = 'off') +
labs(title = 'Temperature in New York', y = 'Temperature (°F)') +
theme_minimal() +
theme(plot.margin = margin(5.5, 40, 5.5, 5.5))
animate(a, nframe = 50)
airq_pause <- airq %>%
mutate(show_time = case_when(Day %in% c(10,20,31) ~ 10,
TRUE ~ 1)) %>%
# uncount is a tidyr function which copies each line 'n' times
uncount(show_time) %>%
group_by(Month) %>%
mutate(reveal_time = row_number()) %>%
ungroup()
关于r - 有什么办法可以在gganimate中使用transition_reveal在特定帧/时间点暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53092216/
有没有办法在 gganimate 中使用 transition_reveal() 来一条一条地画线 - 或者使用其他过渡函数的解决方法.. library(tidyverse) library(gga
我是一名优秀的程序员,十分优秀!