R 和 gganimate:如何更改标题
R and gganimate: How to change the title
SO 社区早上好,
我有以下代码片段:
library( animation )
library( dplyr )
library( gganimate )
library( ggplot2 )
someData = data.frame( years = seq( -5000, 1000, by = 100 ) ) %>%
mutate( values = sample( 1:20, length( years ), replace = TRUE ),
label = ifelse( years < 0, paste0( abs( years ), ' B.C.E.' ), years ) )
chart = ggplot( someData ) +
geom_line( aes( x = years, y = values, frame = years, cumulative = TRUE ) ) +
ggtitle( 'Year: ' )
gganimate( chart, interval = .2 )
这样,年份就会出现在情节的标题中(按数字排序)。
有没有办法把 label
值 - 按照它们在数据框中出现的相同顺序 - 而不是?
我的第一个尝试是在 geom_line
的美学中使用 frame = label
,但标签按字母顺序出现。因此,我尝试通过以下方式更改级别顺序:
someData$label = factor( someData$label, levels = someData$label, order = TRUE )
但这给了我以下错误:
Error in frame_vec == f : comparison of these types is not implemented
In addition: Warning message:
In FUN(X[[i]], ...) :
Incompatible methods ("Ops.ordered", "Ops.factor") for "=="
非常感谢任何帮助,谢谢。
实际上有一个关于此功能的未决 pull request,但它尚未合并到原始存储库中。同时,您可以使用 devtools::install_github("nteetor/gganimate")
安装修改后的包,然后您可以:
gg_animate(chart, title_frame = ~ with(someData, label[years == .]))
SO 社区早上好, 我有以下代码片段:
library( animation )
library( dplyr )
library( gganimate )
library( ggplot2 )
someData = data.frame( years = seq( -5000, 1000, by = 100 ) ) %>%
mutate( values = sample( 1:20, length( years ), replace = TRUE ),
label = ifelse( years < 0, paste0( abs( years ), ' B.C.E.' ), years ) )
chart = ggplot( someData ) +
geom_line( aes( x = years, y = values, frame = years, cumulative = TRUE ) ) +
ggtitle( 'Year: ' )
gganimate( chart, interval = .2 )
这样,年份就会出现在情节的标题中(按数字排序)。
有没有办法把 label
值 - 按照它们在数据框中出现的相同顺序 - 而不是?
我的第一个尝试是在 geom_line
的美学中使用 frame = label
,但标签按字母顺序出现。因此,我尝试通过以下方式更改级别顺序:
someData$label = factor( someData$label, levels = someData$label, order = TRUE )
但这给了我以下错误:
Error in frame_vec == f : comparison of these types is not implemented
In addition: Warning message:
In FUN(X[[i]], ...) :
Incompatible methods ("Ops.ordered", "Ops.factor") for "=="
非常感谢任何帮助,谢谢。
实际上有一个关于此功能的未决 pull request,但它尚未合并到原始存储库中。同时,您可以使用 devtools::install_github("nteetor/gganimate")
安装修改后的包,然后您可以:
gg_animate(chart, title_frame = ~ with(someData, label[years == .]))