首页 > 数据可视化 > 使用R用动图展示日本老龄化

[悬赏]使用R用动图展示日本老龄化 (已翻译100%)

查看 (849次)
英文原文:Japans ageing population, animated with R
标签: R语言
admin 发布于 2017-04-06 11:38:02 (共 2 段, 本文赏金: 8元)
参与翻译(1人): liangliqiang 默认 | 原文

【已悬赏】 赏金: 2元

美国人口调查局通过API向开发者开放了他们大量的数据库。其中之一是国际数据库(International Data Base),它是人口调查部门提供的对多个国家历史人口分类统计(通过年龄和性别)的数据库,并且时间是一直延伸到2050年。Kyle Walker创建了易于通过R语言下载数据集的程序包(目前只能在GitHub上找到),并且使用这个包来做了下图日本从1990年至今人口变化的动画。正如你所看到的,人口调查局预测随着时间推移,人口老龄化问题会越来越严重。注意到,长期下降的新出生人口也被加到图表的下方。事实上,日本人口只是从今年开始首次下降。

liangliqiang
翻译于 2017-05-24 12:12:01
 

参与本段翻译用户:
liangliqiang

显示原文内容

【已悬赏】 赏金: 6元

Kyle 使用ggplot包的geom_bar图来做人口金字塔的可视化,同时利用从ggthemes包的经济主体来描述它。要运行这段代码你必须申请一个人口调查API的key(你必须提供你的公司和邮箱地址,一分钟之后就完成申请),并且安装ImageMagick来支持动画包。你可以看到下面Kyle的源代码(我稍微改编了它来展示从1990年开始的历史人口统计变化和为了发表这个博客而重设动画大小)

library(idbr) # devtools::install_github('walkerke/idbr')
library(ggplot2)
library(animation)
library(dplyr)
library(ggthemes)

idb_api_key("Your Census API key goes here")

male <- idb1('JA', 2010:2050, sex = 'male') %>%
  mutate(POP = POP * -1,
         SEX = 'Male')

female <- idb1('JA', 2010:2050, sex = 'female') %>%
  mutate(SEX = 'Female')

japan <- rbind(male, female) %>%
  mutate(abs_pop = abs(POP))

# Animate it with a for loop

saveGIF({

  for (i in 2010:2050) {
    
    title <- as.character(i)
    
    year_data <- filter(japan, time == i)
    
    g1 <- ggplot(year_data, aes(x = AGE, y = POP, fill = SEX, width = 1))  
      coord_fixed()   
      coord_flip()  
      annotate('text', x = 98, y = -800000, 
               label = 'Data: US Census Bureau IDB; idbr R package', size = 3)   
      geom_bar(data = subset(year_data, SEX == "Female"), stat = "identity")  
      geom_bar(data = subset(year_data, SEX == "Male"), stat = "identity")  
      scale_y_continuous(breaks = seq(-1000000, 1000000, 500000),
                         labels = paste0(as.character(c(seq(1, 0, -0.5), c(0.5, 1))), "m"), 
                         limits = c(min(japan$POP), max(japan$POP)))  
      theme_economist(base_size = 14)   
      scale_fill_manual(values = c('#ff9896', '#d62728'))   
      ggtitle(paste0('Population structure of Japan, ', title))   
      ylab('Population')   
      xlab('Age')   
      theme(legend.position = "bottom", legend.title = element_blank())   
      guides(fill = guide_legend(reverse = TRUE))

    print(g1)
    
  }

}, movie.name = 'japan_pyramid.gif', interval = 0.1, ani.width = 700, ani.height = 600)
想了解更多关于Kyle的程序包,请点击下面的Github知识库链接。




liangliqiang
翻译于 2017-05-24 12:24:26
 

参与本段翻译用户:
liangliqiang

显示原文内容

GMT+8, 2018-11-14 23:31 , Processed in 0.030814 second(s), 11 queries .