使用 current_frame 或 frame_time 时,gganimate 不显示带日期的标题
gganimate not showing title with Date when using current_frame or frame_time
我正在使用 gganimate
创建动画,但我需要在标题上显示日期。我的数据 df
(dput()
包含在末尾)很小,当我不显示带日期的标题但我需要包含它时,动画效果很好。这是我使用的代码:
library(tidyverse)
library(ggplot2)
library(gganimate)
#Code for plot
df %>%
pivot_longer(-c(Date)) %>%
ggplot(aes(x=Date,y=value,color=name,
group=name))+
geom_point(size=2)+
geom_line(size=1)+
scale_y_continuous(labels = scales::comma)+
geom_segment(aes(xend = Date, yend = value), linetype = 2, colour = 'grey') +
geom_text(aes(x = Date, label = sprintf("%5.0f", value),group=name), hjust = 0,show.legend = F,fontface='bold',color='black') +
theme(axis.text.x = element_text(face = 'bold',color='black'),
axis.text.y = element_text(face = 'bold',color='black'),
legend.text = element_text(face = 'bold',color='black'),
axis.title = element_text(face = 'bold',color='black'),
legend.position = 'bottom',
legend.title = element_text(face = 'bold',color='black'),
legend.justification = 'center')+
guides(color=guide_legend(nrow=1,byrow=TRUE))+
transition_reveal(Date)+
view_follow(fixed_x = TRUE,fixed_y = TRUE)+
labs(title = 'Values at {current_frame}')
当我添加 current_frame 或 frame_time 时,我得到了这个并且没有渲染动画:
object 'current_frame' not found
或者这样:
object 'frame_time' not found
如何解决这个问题,以便我可以在标题上显示我的日期?非常感谢!
我的数据df
是下一个:
#Data
df <- structure(list(A = c(209.666666666667, 205, 203.333333333333,
202.333333333333, 223.666666666667, 199.666666666667, 192.666666666667,
213.666666666667, 206.666666666667, 206.666666666667, 196.333333333333,
197.333333333333, 204, 191.333333333333, 203.666666666667, 200.666666666667,
201, 199.333333333333, 204.666666666667, 195, 217, 212, 200,
193.333333333333, 211.333333333333), B = c(0, 0, 25.6666666666667,
0, 0, 7.33333333333334, 3.33333333333334, 23.3333333333333, 27.3333333333333,
60.3333333333333, 99.6666666666667, 174.666666666667, 237, 310.666666666667,
413.333333333333, 544.333333333333, 576, 688.666666666667, 722.333333333333,
878, 831, 865, 938, 858.666666666667, 770.666666666667), Date = structure(c(18334,
18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343,
18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352,
18353, 18354, 18355, 18356, 18357, 18358), class = "Date")), class = "data.frame", row.names = c(NA,
25L))
您应该在标题中使用frame_along
来显示。您可以使用此代码:
df <- structure(list(A = c(209.666666666667, 205, 203.333333333333,
202.333333333333, 223.666666666667, 199.666666666667, 192.666666666667,
213.666666666667, 206.666666666667, 206.666666666667, 196.333333333333,
197.333333333333, 204, 191.333333333333, 203.666666666667, 200.666666666667,
201, 199.333333333333, 204.666666666667, 195, 217, 212, 200,
193.333333333333, 211.333333333333), B = c(0, 0, 25.6666666666667,
0, 0, 7.33333333333334, 3.33333333333334, 23.3333333333333, 27.3333333333333,
60.3333333333333, 99.6666666666667, 174.666666666667, 237, 310.666666666667,
413.333333333333, 544.333333333333, 576, 688.666666666667, 722.333333333333,
878, 831, 865, 938, 858.666666666667, 770.666666666667), Date = structure(c(18334,
18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343,
18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352,
18353, 18354, 18355, 18356, 18357, 18358), class = "Date")), class = "data.frame", row.names = c(NA,
25L))
library(reprex)
library(tidyverse)
#> Warning: package 'tidyr' was built under R version 4.1.2
#> Warning: package 'readr' was built under R version 4.1.2
#> Warning: package 'dplyr' was built under R version 4.1.2
library(ggplot2)
library(gganimate)
#Code for plot
df %>%
pivot_longer(-c(Date)) %>%
ggplot(aes(x=Date,y=value,color=name,
group=name))+
geom_point(size=2)+
geom_line(size=1)+
scale_y_continuous(labels = scales::comma)+
geom_segment(aes(xend = Date, yend = value), linetype = 2, colour = 'grey') +
geom_text(aes(x = Date, label = sprintf("%5.0f", value),group=name), hjust = 0,show.legend = F,fontface='bold',color='black') +
theme(axis.text.x = element_text(face = 'bold',color='black'),
axis.text.y = element_text(face = 'bold',color='black'),
legend.text = element_text(face = 'bold',color='black'),
axis.title = element_text(face = 'bold',color='black'),
legend.position = 'bottom',
legend.title = element_text(face = 'bold',color='black'),
legend.justification = 'center')+
guides(color=guide_legend(nrow=1,byrow=TRUE))+
transition_reveal(Date)+
view_follow(fixed_x = TRUE,fixed_y = TRUE) +
labs(title = 'Values at {(frame_along)}')
输出
由 reprex 包 (v2.0.1) 创建于 2022-03-16
我正在使用 gganimate
创建动画,但我需要在标题上显示日期。我的数据 df
(dput()
包含在末尾)很小,当我不显示带日期的标题但我需要包含它时,动画效果很好。这是我使用的代码:
library(tidyverse)
library(ggplot2)
library(gganimate)
#Code for plot
df %>%
pivot_longer(-c(Date)) %>%
ggplot(aes(x=Date,y=value,color=name,
group=name))+
geom_point(size=2)+
geom_line(size=1)+
scale_y_continuous(labels = scales::comma)+
geom_segment(aes(xend = Date, yend = value), linetype = 2, colour = 'grey') +
geom_text(aes(x = Date, label = sprintf("%5.0f", value),group=name), hjust = 0,show.legend = F,fontface='bold',color='black') +
theme(axis.text.x = element_text(face = 'bold',color='black'),
axis.text.y = element_text(face = 'bold',color='black'),
legend.text = element_text(face = 'bold',color='black'),
axis.title = element_text(face = 'bold',color='black'),
legend.position = 'bottom',
legend.title = element_text(face = 'bold',color='black'),
legend.justification = 'center')+
guides(color=guide_legend(nrow=1,byrow=TRUE))+
transition_reveal(Date)+
view_follow(fixed_x = TRUE,fixed_y = TRUE)+
labs(title = 'Values at {current_frame}')
当我添加 current_frame 或 frame_time 时,我得到了这个并且没有渲染动画:
object 'current_frame' not found
或者这样:
object 'frame_time' not found
如何解决这个问题,以便我可以在标题上显示我的日期?非常感谢!
我的数据df
是下一个:
#Data
df <- structure(list(A = c(209.666666666667, 205, 203.333333333333,
202.333333333333, 223.666666666667, 199.666666666667, 192.666666666667,
213.666666666667, 206.666666666667, 206.666666666667, 196.333333333333,
197.333333333333, 204, 191.333333333333, 203.666666666667, 200.666666666667,
201, 199.333333333333, 204.666666666667, 195, 217, 212, 200,
193.333333333333, 211.333333333333), B = c(0, 0, 25.6666666666667,
0, 0, 7.33333333333334, 3.33333333333334, 23.3333333333333, 27.3333333333333,
60.3333333333333, 99.6666666666667, 174.666666666667, 237, 310.666666666667,
413.333333333333, 544.333333333333, 576, 688.666666666667, 722.333333333333,
878, 831, 865, 938, 858.666666666667, 770.666666666667), Date = structure(c(18334,
18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343,
18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352,
18353, 18354, 18355, 18356, 18357, 18358), class = "Date")), class = "data.frame", row.names = c(NA,
25L))
您应该在标题中使用frame_along
来显示。您可以使用此代码:
df <- structure(list(A = c(209.666666666667, 205, 203.333333333333,
202.333333333333, 223.666666666667, 199.666666666667, 192.666666666667,
213.666666666667, 206.666666666667, 206.666666666667, 196.333333333333,
197.333333333333, 204, 191.333333333333, 203.666666666667, 200.666666666667,
201, 199.333333333333, 204.666666666667, 195, 217, 212, 200,
193.333333333333, 211.333333333333), B = c(0, 0, 25.6666666666667,
0, 0, 7.33333333333334, 3.33333333333334, 23.3333333333333, 27.3333333333333,
60.3333333333333, 99.6666666666667, 174.666666666667, 237, 310.666666666667,
413.333333333333, 544.333333333333, 576, 688.666666666667, 722.333333333333,
878, 831, 865, 938, 858.666666666667, 770.666666666667), Date = structure(c(18334,
18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343,
18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352,
18353, 18354, 18355, 18356, 18357, 18358), class = "Date")), class = "data.frame", row.names = c(NA,
25L))
library(reprex)
library(tidyverse)
#> Warning: package 'tidyr' was built under R version 4.1.2
#> Warning: package 'readr' was built under R version 4.1.2
#> Warning: package 'dplyr' was built under R version 4.1.2
library(ggplot2)
library(gganimate)
#Code for plot
df %>%
pivot_longer(-c(Date)) %>%
ggplot(aes(x=Date,y=value,color=name,
group=name))+
geom_point(size=2)+
geom_line(size=1)+
scale_y_continuous(labels = scales::comma)+
geom_segment(aes(xend = Date, yend = value), linetype = 2, colour = 'grey') +
geom_text(aes(x = Date, label = sprintf("%5.0f", value),group=name), hjust = 0,show.legend = F,fontface='bold',color='black') +
theme(axis.text.x = element_text(face = 'bold',color='black'),
axis.text.y = element_text(face = 'bold',color='black'),
legend.text = element_text(face = 'bold',color='black'),
axis.title = element_text(face = 'bold',color='black'),
legend.position = 'bottom',
legend.title = element_text(face = 'bold',color='black'),
legend.justification = 'center')+
guides(color=guide_legend(nrow=1,byrow=TRUE))+
transition_reveal(Date)+
view_follow(fixed_x = TRUE,fixed_y = TRUE) +
labs(title = 'Values at {(frame_along)}')
输出
由 reprex 包 (v2.0.1) 创建于 2022-03-16