数据:2001-2008我国各省(自治区/直辖市)GDP
步骤总结:
1.载入工作路径
2.载入所需要的包
3.对每年的GDP进行排序,生成新变量rank
4.绘制静态图
5.用gganimate转化为动态图
6.保存动态图
详细笔记:
1.载入工作路径
setwd("C:\\*******\\gif1\\")
2.载入所需要的包
library(tidyverse)
library(gganimate)
library(ggplot2)
library(scales)
library(gifski)
library(viridis)
3.对每年的GDP进行排序,生成新的变量rank
gdp <- read.csv("pro_gdp.csv")
gdp_new <- gdp %>% group_by(year) %>% arrange(desc(value)) %>% mutate(rank = row_number(),label = str_c(" ", round(value))) %>% ungroup()
gdp_new
4.用ggplot2绘制静态图
p <- ggplot(data = gdp_new, aes(x = desc(rank), y=value, group = prov))+geom_col(aes(fill = as.factor(prov), color = as.factor(prov)), show.legend = FALSE) + coord_flip(clip = "off",expand = FALSE)+ geom_text(aes(label = label), hjust = 0)+ geom_text(aes(y = 0,label = str_c(prov, " "),color = as.factor(prov)),hjust =1, vjust = 0.5, show.legend = FALSE)+ theme_void()+ ylim(-2e+4, 4e+4)
p
5.定义新的颜色
###颜色调整
show_col(viridis_pal(end = 0.9)(31))
viridis_11 <- c(viridis_pal(end = 0.9)(31))
colour_rank <- c(1:31)
virids_palette <- data.frame(colour_rank, colour = viridis_11) %>% as_tibble()
colour <- gdp_new %>% group_by(prov) %>% summarise(value_max = max(value)) %>% arrange(-value_max) %>% mutate(value_rank = rank(prov)) %>% bind_cols(virids_palette) %>% arrange(value_rank) %>% pull(colour) %>% as.character()
colour
6.调整原图颜色
p11 <- p+scale_fill_manual(values = colour) +scale_colour_manual(values = colour)
7.用gganimate转化为动态图
p11 + facet_wrap(~year)
p11 <- p11 + labs(title = '{closest_state}年各省市GDP') + theme(plot.title=element_text(size=20, hjust=0.5, face="bold", colour="grey")) + transition_states(year)
###glue语句{closest_state}
p11
8.保存动态图
animate(p11, res = 500, width = 2000, height = 1250)
anim_save("gdp.gif")