学习笔记1:用R语言绘制柱形动态图

数据: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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值