在r中设置卡通图绘图动画时,gganimate中出现旧api错误

在r中设置卡通图绘图动画时,gganimate中出现旧api错误,r,ggplot2,gganimate,cartogram,R,Ggplot2,Gganimate,Cartogram,我不熟悉cartogram,geospatial和gganimate,并且正在使用网站上的代码重新创建动画情节: 但是在动画制作的最后一步,我现在得到了这个错误: 错误:您似乎正在尝试使用旧API,该API已被弃用。请将您的代码更新到新API或从安装gganimate的旧版本 我的代码(使用与网站不同的对象名称): 库(tidyverse) 图书馆(地图工具) 图书馆(卡通图) 图书馆(绿色) 图书馆(sf) 图书馆(mapproj) 库(gganimate) 图书馆(tweenr) 数据(“w

我不熟悉
cartogram
geospatial
gganimate
,并且正在使用网站上的代码重新创建动画情节

但是在
动画制作的最后一步,我现在得到了这个错误:

错误:您似乎正在尝试使用旧API,该API已被弃用。请将您的代码更新到新API或从安装gganimate的旧版本

我的代码(使用与网站不同的对象名称):

库(tidyverse)
图书馆(地图工具)
图书馆(卡通图)
图书馆(绿色)
图书馆(sf)
图书馆(mapproj)
库(gganimate)
图书馆(tweenr)
数据(“wrld_siml”)
cartogram_data=wrld_siml[wrld_siml$REGION==2,]

cartogram_data_sf在您链接到的网页中,动画代码上方有一条注释:“注意:此代码使用gganimate的旧版本。需要更新。如果您能帮助我,请给我留言!”@eipi10是的,您是对的。我想用最新版本的
gganimate
做这件事并不容易。将等待一段时间,看看是否有人可以回答,否则将发送一个关闭此问题的请求。谢谢你让我知道这张纸条。
library(tidyverse)
library(maptools)
library(cartogram)
library(viridis)
library(sf)
library(mapproj)
library(gganimate) 
library(tweenr)

data("wrld_simpl")

cartogram_data = wrld_simpl[wrld_simpl$REGION==2,]
cartogram_data_sf <- st_as_sf(cartogram_data)
cartogram_sf_proj = st_transform(cartogram_data_sf,3857)
cartogram_plot <- cartogram::cartogram(cartogram_sf_proj, "POP2005", itermax =7)
cartogram_data_df <- broom::tidy(cartogram_data) %>%
  dplyr::left_join(cartogram_data@data, by=c("id"="ISO3"))

cartogram_df <- broom::tidy(cartogram_data) %>% 
  dplyr::left_join(cartogram_data@data, by=c("id"="ISO3"))
cartogram_data_df$id <- seq(1,nrow(cartogram_data_df))
cartogram_df$id <- seq(1,nrow(cartogram_df))

data <- rbind(cartogram_df, cartogram_data_df, cartogram_df)

# Set transformation type + time
data$ease <- "cubic-in-out"
data$time <- rep(c(1:3), each=nrow(cartogram_df))

 
# Calculate the transition between these 2 objects?
dt <- tween_elements(data, time='time', group='id', ease='ease', nframes = 30)
 
# check a few frame
ggplot() + 
  geom_polygon(data = dt %>% filter(.frame==0) %>% arrange(order), 
    aes(fill = POP2005, x = long, y = lat, group = group), size=0, alpha=0.9
  )
ggplot() + 
  geom_polygon(data = dt %>% filter(.frame==5) %>% arrange(order), 
    aes(fill = POP2005, x = long, y = lat, group = group) , size=0, alpha=0.9
  )
ggplot() + 
  geom_polygon(data = dt %>% filter(.frame==10) %>% arrange(order), 
    aes(fill = POP2005, x = long, y = lat, group = group) , size=0, alpha=0.9
  )
africa_plt <- ggplot() + 
  geom_polygon(data = dt  %>% arrange(order) , aes(fill = POP2005/1000000, x = long, y = lat, group = group, frame=.frame) , size=0, alpha=0.9) +
  theme_void() +
  
  scale_fill_viridis(
    name="Population (M)", breaks=c(1,50,100, 140), 
    guide = guide_legend( 
      keyheight = unit(3, units = "mm"), keywidth=unit(12, units = "mm"), 
      label.position = "bottom", title.position = 'top', nrow=1)
  ) +
  labs( title = "Africa", subtitle="Population per country in 2005" ) +
  ylim(-35,35) +
  
  theme(
    text = element_text(color = "#22211d"), 
    plot.background = element_rect(fill = "#f5f5f4", color = NA), 
    panel.background = element_rect(fill = "#f5f5f4", color = NA), 
    legend.background = element_rect(fill = "#f5f5f4", color = NA),
    plot.title = element_text(size= 22, hjust=0.5, color = "#4e4d47", margin = margin(b = -0.1, t = 0.4, l = 2, unit = "cm")),
    plot.subtitle = element_text(size= 13, hjust=0.5, color = "#4e4d47", margin = margin(b = -0.1, t = 0.4, l = 2, unit = "cm")),
    legend.position = c(0.2, 0.26)
  ) +
  coord_map() +
  # transition_manual(F)
 
# Make the animation
#animation::ani.options(interval = 1/9)
gganimate(africa_plt, "Animated_Africa.gif",  title_frame = F)