在R中创建动画时,月份按字母顺序显示

在R中创建动画时,月份按字母顺序显示,r,ggplot2,gganimate,R,Ggplot2,Gganimate,我正在用R创建一个动画。但当动画渲染时,它会按字母顺序显示月份。 从四月、八月等开始。应该从一月,二月开始 我还没有找到任何令人满意的答案 library(tidyverse) library(gganimate) ov_tidy <- read_csv("ov_tidy.csv") ov_formatted <- ov_tidy %>% group_by(year) %>% # The * 1 makes it possible to

我正在用R创建一个动画。但当动画渲染时,它会按字母顺序显示月份。 从四月、八月等开始。应该从一月,二月开始

我还没有找到任何令人满意的答案


library(tidyverse)
library(gganimate)

ov_tidy <- read_csv("ov_tidy.csv")

ov_formatted <- ov_tidy %>%
  group_by(year) %>%
  # The * 1 makes it possible to have non-integer ranks while sliding
  mutate(rank = rank(-value),
         Value_rel = value/value[rank==1],
         Value_lbl = paste0("$",format(value, scientific = FALSE))) %>%
  group_by(country_name) %>% 
  filter(rank <=10) %>%
  ungroup()

# Animation


anim <- ggplot(ov_formatted, aes(rank, group = country_name, 
                                 fill = as.factor(country_name), color = as.factor(country_name))) +
  geom_tile(aes(y = value/2,
                height = value,
                width = 0.9), alpha = 0.8, color = NA) +
  geom_text(aes(y = 0, label = paste(country_name, " ")), vjust = 0.2, hjust = 1) +
  geom_text(aes(y=value,label = Value_lbl, hjust=0)) +
  coord_flip(clip = "off", expand = FALSE) +
  scale_y_continuous(labels = scales::comma) +
  scale_x_reverse() +
  guides(color = FALSE, fill = FALSE) +
  theme(axis.line=element_blank(),
        axis.text.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks=element_blank(),
        axis.title.x=element_blank(),
        axis.title.y=element_blank(),
        legend.position="none",
        panel.background=element_blank(),
        panel.border=element_blank(),
        panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.grid.major.x = element_line( size=.1, color="grey" ),
        panel.grid.minor.x = element_line( size=.1, color="grey" ),
        plot.title=element_text(size=25, hjust=0.5, face="bold", colour="grey", vjust=-1),
        plot.subtitle=element_text(size=18, hjust=0.5, face="italic", color="grey"),
        plot.caption =element_text(size=8, hjust=0.5, face="italic", color="grey"),
        plot.background=element_blank(),
        plot.margin = margin(2,2, 2, 4, "cm")) +
  transition_states(year, transition_length = 4, state_length = 1, wrap = FALSE) +
  view_follow(fixed_x = TRUE)  +
  labs(title = 'Funding data YTD : {closest_state}',  
       subtitle  =  "Sub Heading",
       caption  = "Caption... Outlier Ventures") 

# For GIF

animate(anim, 200, fps = 20,  width = 1200, height = 1000, 
        renderer = gifski_renderer("ov_funding_data.gif"), end_pause = 15, start_pause =  15) 

# For MP4

animate(anim, 200, fps = 20,  width = 1200, height = 1000, 
        renderer = ffmpeg_renderer()) -> for_mp4

anim_save("ov_funding_data.mp4", animation = for_mp4 )



图书馆(tidyverse)
库(gganimate)
ov_tidy%
#*1使滑动时有非整数列成为可能
变异(秩=秩(-value),
Value_rel=Value/Value[rank==1],
Value_lbl=paste0(“$”,格式(Value,scientific=FALSE)))%>%
按(国家/地区名称)分组%>%
过滤器(排名%
解组()
#动画
_mp4动画
动画保存(“ov\u funding\u data.mp4”,动画=for\u mp4)

这方面的任何帮助都会被高度赞扬

为了复制您的问题,您能给我们分享一个
dput(ov_tidy)
吗?我有三个栏,国家名称、价值、月份可能是年份栏。您尝试过
ov_tidy$year=as.integer(ov_tidy$year)吗
将月份作为一个因子,并将
levels=
参数设置为正确的顺序。@AllanCameron我的数据中只有月份名称。那么你能详细说明你想说什么吗?