暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言绘图|动态变化条形图

1755
点击关注了解更多哦

本文主要展示在R语言
中如何利用barRacer[1]包绘制动态变化的条形图,绘图效果如下图所示:

1、数据来源

国家统计局[2]官方网站上关于2001-2020年我国31个省份常住人口(未包含港澳台数据)为例,利用动态条形图展示各省份常住人口的变化,数据可在国家统计局官网自行下载。

devtools::install_github("jl5000/barRacer")
install.packages("gifski")
library(barRacer)
library(reshape2)
library(gganimate)

mydata <- readxl::read_xlsx("C:\\Users\\Acer\\Desktop\\常用数据\\常住人口.xlsx")
# A tibble: 6 x 21
#  province y2020 y2019 y2018 y2017 y2016 y2015 y2014 y2013 y2012 y2011 y2010 y2009 y2008 y2007 y2006 y2005 y2004 y2003 y2002 y2001
#  <chr>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 北京      2189  2190  2192  2194  2195  2188  2171  2125  2078  2024  1962  1860  1771  1676  1601  1538  1493  1456  1423  1385
#2 天津      1387  1385  1383  1410  1443  1439  1429  1410  1378  1341  1299  1228  1176  1115  1075  1043  1024  1011  1007  1004
#3 河北      7464  7447  7426  7409  7375  7345  7323  7288  7262  7232  7194  7034  6989  6943  6898  6851  6809  6769  6735  6699
#4 山西      3490  3497  3502  3510  3514  3519  3528  3535  3548  3562  3574  3427  3411  3393  3375  3355  3335  3314  3294  3272
#5 内蒙      2403  2415  2422  2433  2436  2440  2449  2455  2464  2470  2472  2458  2444  2429  2415  2403  2393  2386  2384  2381
#6 辽宁      4255  4277  4291  4312  4327  4338  4358  4365  4375  4379  4375  4341  4315  4298  4271  4221  4217  4210  4203  4194
data <- reshape2::melt(mydata,id.vars = "province", value.name = "POP" ,variable.name = "year")
data$year <- factor(data$year, levels = paste("y", 2001:2020, sep = ""), labels = 2001:2020)
data$year <-  as.integer(as.character(data$year))
head(data)
#  province year  POP
#1     北京 2020 2189
#2     天津 2020 1387
#3     河北 2020 7464
#4     山西 2020 3490
#5     内蒙 2020 2403
#6     辽宁 2020 4255
str(data)
#'data.frame': 620 obs. of  3 variables:
# $ province: chr  "北京" "天津" "河北" "山西" ...
# $ year    : int  2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 ...
# $ POP     : num  2189 1387 7464 3490 2403 ...

2、图形绘制

利用barRacer包中的bar_chart_race()
函数来绘制动态变化的条形图。其中,参数cat_col
指定分类变量,val_col
指定数值变量,time_col
指定时间变量,max_bars
表示显示条形的个数,duration
fps
用来控制运动速度和帧率,width
height
用来控制宽度和高度,title表示图形标题。anim_save()
函数用来保存图形。但如何对图形的颜色进行修改暂未找到解决方法

bar_chart_race(data, cat_col=province, val_col=POP, time_col=year, 
               max_bars=31, duration = 10, fps = 30, width = 1200, 
               height=900, title = "2001-2020年常住人口变化(万人)")
anim_save("2001-2020年常住人口变化.gif"#保存图

其他

关于其他动态图的绘制可参考R语言绘图|动态折线图R语言绘图|动态散点图R语言绘图|分面动态散点图


如有帮助请多多点赞哦!

参考资料

[1]

barRacer: https://github.com/jl5000/barRacer

[2]

国家统计局: https://data.stats.gov.cn/index.htm


文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论