谁在管理我们的国家?——2019年全国人民代表大会数据分析与可视化

谁在管理我们的国家?——2019年全国人民代表大会数据分析与可视化

本周的小项目作业是一个探索性数据分析的案例。

CGTN 的网站上有一个非常炫酷的项目,是关于 2019 年的全国人民代表大会参会人大代表数据的一个可视化:https://news.cgtn.com/event/2019/whorunschina/index.html ,里面从下面的角度探索了这个数据的一些特征:

视频讲解

  1. 参会人员数量:2975 人;
  2. 男女比例:男性 2233 人,女性 742 人;
  3. 年龄分布,90 后 28 个人;
  4. 民族分布:汉族 2538 人;
  5. 学历分布:硕士最多,836 人;
  6. 学科分布:看起来还是经管专业的人最多;
  7. 党派分布:CPC 最多,2172 人;

后面还有好几张图我没有整理数据,所以我们先关注前 7 个图。本次的作业就是对我提供的 NPC.csv 数据进行探索性数据分析,这个数据大概是这样的:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

例如学科的分布:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

作业

本周的作业就是对我提供的 NPC.csv 数据进行探索性数据分析,绘制出 7 幅图表并作出一定的解读。

分析工具任选,推荐使用 R、Stata 和 Python;

如果你打算使用 R 语言,可以参考下面的 tips:

  1. 数据处理包:dplyr
  2. 绘图包:ggplot2
  3. 绘制华夫图:waffleggwaffle
  4. 绘制树图:treemapify
  5. 绘制桑基图:sankeywheelggalluvial
  6. 绘制地图:hchinamap、ggplot + sf
  7. 绘制席位分摊图:ggparlggparliamentggpol

Happy Tidying Data on Friday ~

参考结果

我们可以通过下面几个纬度对这个数据集进行分析,首先读取数据:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

总人数

1
2
3
4
5
df %>% 
count() %>%
pull()

#> [1] 2975

计算每个代表团的总人数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
df %>% 
count(Delegation)

#> # A tibble: 35 x 2
#> Delegation n
#> <chr> <int>
#> 1 Anhui 111
#> 2 Beijing 54
#> 3 Chongqing 60
#> 4 Fujian 69
#> 5 Gansu 52
#> 6 Guangdong 163
#> 7 Guangxi 89
#> 8 Guizhou 73
#> 9 Hainan 25
#> 10 Hebei 123
#> # … with 25 more rows

我手动把这个结果翻译了一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(delegation <- read_csv("delegation2.csv") %>%
transmute(
delegation = `代表团`,
count = n
) %>%
mutate(
delegation = gsub(x = delegation, pattern = "中国人民解放军武装警察部队", replacement = "中国人民解放军\n武装警察部队")
))

#> # A tibble: 35 x 2
#> delegation count
#> <chr> <dbl>
#> 1 安徽 111
#> 2 北京 54
#> 3 重庆 60
#> 4 福建 69
#> 5 甘肃 52
#> 6 广东 163
#> 7 广西 89
#> 8 贵州 73
#> 9 海南 25
#> 10 河北 123
#> # … with 25 more rows

然后我们绘制一幅华夫图展示这个结果,waffle 包返回的是一个 gg 对象,所以我们可以在其上直接添加 ggplot2 包的操作:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

因为代表团有 35 个,要是显示图例的话就太拥挤了,所以我把图例取消了,然后上面的华夫图的填充色就仅仅是为了美观了,但是也能反映一定的信息,例如可以看出各个代表团的人数还是蛮均衡的。我们还可以把人数最多的 9 个代表团拿出来比较:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

性别、年龄分布

性别年龄分布我们可以一起来看:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

可以看出,60 后是 NPC 的核心,90 后中女性的数量多于男性。人大代表们的平均年龄是 53.77 岁。其中,1672 名代表出生于 20 世纪 60 年代,占总数的一半以上。另外我们还可以看到,代表们越年轻,性别比例越均衡。

是不是觉得女性的比例很少?实际上近几届人大会议上女代表的比例正在稳步上升:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

民族分布

中国是个有着 56 个民族的多民族国家,55个少数民族 + 汉族,那么人大代表中有多少个民族呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
df %>%
count(民族)

#> # A tibble: 56 x 2
#> 民族 n
#> <chr> <int>
#> 1 东乡族 2
#> 2 乌孜别克族 1
#> 3 京族 1
#> 4 仡佬族 4
#> 5 仫佬族 1
#> 6 佤族 1
#> 7 侗族 6
#> 8 俄罗斯族 1
#> 9 保安族 1
#> 10 傈僳族 2
#> # … with 46 more rows

也就是说每个民族都至少有一个代表,可以用一幅树图展示各个民族代表的比例:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

其中汉族人 2538 人,占总数的 85%。

学历分布

不用想就知道人大代表们的学历应该都挺高的:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

如果我们只关心男女比例,而不关心各种学历的人数关系,可以使用 100% 填充模式:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

学科分布

全国人大代表的专业背景怎么样?根据中国教育部的专业分类,管理科学,哲学,文学,历史,教育,艺术,经济,法律和军事科学属于人文社会科学 ; 而科学,工程,农业和医学是自然科学。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

党派分布

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。
党派 n
中共 2172
中国民主促进会 54
九三学社 64
农工党 54
台盟 11
423
民主同盟 58
民主建国会 57
民革 44
致公党 38

可以绘制一幅冲积图来展示各个代表团的党派分布:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

代表们籍贯的地理分布图

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

还可以使用 ggplot2 + sf 绘制:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

大概完成作业了!大家有任何疑问欢迎在知识星球和微信群里进行提问!

知识星球附件链接:https://t.zsxq.com/ayRFEim
单独购买链接:https://mianbaoduo.com/o/bread/YpiYlJ4=

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×