本文主要介绍如何利用R语言绘制人口金字塔图。所使用的package主要包括ggplot2[1]、ggpol[2]、dplyr[3]等。绘制图形如下图所示:
1.数据获取
从福建省统计年鉴(2022)[4]获取2021年福建省人口年龄构成数据信息,绘制人口结构金字塔图。数据信息如下图所示:
2.数据读入
library(ggpol)
library(ggplot2)
library(dplyr)
data <- readxl::read_xlsx("data.xlsx", sheet = 2)
data
# A tibble: 17 x 4
# Group Total Male Female
# <chr> <dbl> <dbl> <dbl>
# 1 Aged 0-4 5.53 2.99 2.54
# 2 Aged 5-9 7.37 4.01 3.36
# 3 Aged 10-14 6.17 3.34 2.83
# 4 Aged 15-19 4.99 2.69 2.30
# 5 Aged 20-24 4.81 2.58 2.23
# 6 Aged 25-29 6.26 3.36 2.89
# 7 Aged 30-34 9.63 4.95 4.68
# 8 Aged 35-39 8.34 4.28 4.07
# 9 Aged 40-44 6.99 3.58 3.41
#10 Aged 45-49 8.40 4.30 4.10
#11 Aged 50-54 8.26 4.20 4.06
#12 Aged 55-59 7.40 3.74 3.66
#13 Aged 60-64 4.55 2.28 2.27
#14 Aged 65-69 4.54 2.21 2.33
#15 Aged 70-74 2.91 1.43 1.49
#16 Aged 75-79 1.80 0.873 0.931
#17 80 and over 2.04 0.877 1.16
# 数据转换
mydata <- data %>% select(1, 3, 4) %>%
reshape2::melt(id.vars = "Group", variable.name = "Sex", value.name = "Prop")
# 为对称显示,将其中一半设置取负数
mydata$Prop <- ifelse(mydata$Sex == "Male", mydata$Prop * -1, mydata$Prop)
# 标签文本
mydata$label <- abs(mydata$Prop) %>% round(digits = 2)
head(mydata)
# Group Sex Prop label
#1 Aged 0-4 Male -2.9936 2.99
#2 Aged 5-9 Male -4.0078 4.01
#3 Aged 10-14 Male -3.3450 3.35
#4 Aged 15-19 Male -2.6868 2.69
#5 Aged 20-24 Male -2.5756 2.58
#6 Aged 25-29 Male -3.3645 3.36
3.图形绘制
ggplot(mydata, aes(Prop, Group, fill = Sex)) +
geom_col(width = 0.6, color = "black") +
geom_text(aes(label = label), size = 4) +
facet_share(~Sex, scales = "free_x", reverse_num = TRUE) +
#ggtitle("福建省2021年人口年龄构成") +
labs(x = "Prop(%)",
subtitle = "WhChat:日常分享的小懒猫",
caption = "Source:福建省统计年鉴(2022)") +
scale_fill_brewer(palette = "Set1" ) +
theme_bw(base_size = 15) +
theme(axis.title.y = element_blank(),
plot.title = element_text(hjust = 0.5),
axis.text = element_text(colour = "black"))

4.其他
其他绘图方法可进一步关注公众号【日常分享的小懒猫】。
如有帮助请多多点赞哦!
参考资料
ggplot2: https://cran.r-project.org/web/packages/ggplot2/index.html,
[2]ggpol: https://cran.r-project.org/web/packages/ggpol/index.html,
[3]dplyr: https://cran.r-project.org/web/packages/dplyr/index.html,
[4]福建省统计年鉴(2022): https://tjj.fujian.gov.cn/xxgk/ndsj/
文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




