首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[GBD数据库挖掘] 15.地图展示不同年份间人均预期寿命差异

[GBD数据库挖掘] 15.地图展示不同年份间人均预期寿命差异

作者头像
R语言数据分析指南
发布2023-12-14 14:51:57
发布2023-12-14 14:51:57
54700
代码可运行
举报
运行总次数:0
代码可运行

加载R包

代码语言:javascript
代码运行次数:0
运行
复制
library(tidyverse)
library(sf)
library(camcorder)
library(MetBrewer)
# install.packages("giscoR")
library(giscoR)

R包版本

导入数据

代码语言:javascript
代码运行次数:0
运行
复制
life_df <- read_csv('data.csv') %>% janitor::clean_names()

数据清洗

代码语言:javascript
代码运行次数:0
运行
复制
le_change <- life_df %>% 
  group_by(entity) %>% 
  filter(year == 2021 | year ==1995) %>% 
  filter(!is.na(code)) %>% 
  pivot_wider(names_from = year, values_from = c(life_expectancy0,
                                                 life_expectancy10, 
                                                 life_expectancy25, 
                                                 life_expectancy45, 
                                                 life_expectancy65, 
                                                 life_expectancy80)) %>% 
  pivot_longer(`Life expectancy at age 0`:`At age 80`, names_to = "age", values_to = "change") %>% 
  mutate(age = fct_inorder(age))

获取地图数据

代码语言:javascript
代码运行次数:0
运行
复制
world <- giscoR::gisco_get_countries() %>% 
  janitor::clean_names() %>% 
  rename(code = iso3_code) %>% 
  st_transform(crs = "+proj=moll")

world_le_2021 <- world %>% left_join(le_change) %>% 
  filter(!is.na(change))

数据可视化

代码语言:javascript
代码运行次数:0
运行
复制
ggplot(world_le_2021) +
  geom_sf(aes(fill = change), linewidth = 0.05, color = "black") +
  scale_fill_gradientn(colors=rev(met.brewer("Cassatt1")))+
  facet_wrap(vars(age), ncol = 2) +
  guides(fill = guide_colorsteps(title.position = "top", show.limits = TRUE)) +
  theme_minimal() +
  theme(
    legend.position = "top",
    legend.title = element_text(hjust = 0.5),
    legend.key.width = unit(3, "lines"),
    legend.key.height = unit(0.6, "lines"),
    plot.background = element_rect(fill = "grey99", color = NA),
    strip.text = element_text(size = 12),
    axis.text = element_blank(),
    panel.grid = element_line(linewidth = 0.1, color = "grey70"),
    plot.margin = margin(10, 10, 10, 10))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加载R包
  • R包版本
  • 导入数据
  • 数据清洗
  • 获取地图数据
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档