大数跨境
0
0

GBD数据分析-GBD热图的另一类画法

GBD数据分析-GBD热图的另一类画法 R语言数据分析指南
2025-09-17
0

欢迎关注R语言数据分析指南

上一篇文章介绍了如何用gt包来针对GBD数据绘制热图,其实除了这种方法外还有一类简便的方法一样可以实现同样的效果,此次就分享一下另一种方法,个人观点仅供参考。有需要学习R语言绘图的朋友可关注文末介绍购买小编的R绘图文档。购买前请咨询,零基础不要买。

结果图

加载R包

library(tidyverse)
library(patchwork)
library(RColorBrewer)

数据清洗

df <- read_tsv("GBD_ASDR_Male.xls") %>% 
  filter(location=="Global",
         age %in% c("<5 years","5-9 years","10-14 years","15-19 years",
                    "20-24 years",
                    "25-29 years","30-34 years","35-39 years","40-44 years",
                    "45-49 years","50-54 years","55-59 years","60-64 years",
                    "65-69 years","70-74 years","75-79 years","80-84 years",
                    "85-89 years","90-94 years","95+ years")) %>% 
  mutate(val=round(val,digits = 2),
         age = str_remove(age, " years")) %>% 
  select(year,val,age)

year_1990 <- df %>% filter(year == 1990) %>% select(age, val) %>% 
  mutate(x="1990",age=factor(age,levels = rev(age)))

year_2019 <- df %>% filter(year == 2019) %>% select(val,age) %>% 
  mutate(x="2019",age=factor(age,levels = rev(age)))

左侧热图绘制

p1 <- ggplot(data=year_1990,aes(x=x,y=age,fill=val)) +
  geom_tile(aes(x=x,y=age,fill=val),color="grey30",linewidth=0.3) +
  geom_text(aes(label=val),vjust=0.5) +
  scale_fill_gradientn(
    colours = rev(colorRampPalette(brewer.pal(11"RdBu")[3:9])(200))) +
  scale_x_discrete(position = "top",expand = c(0,0)) +
  scale_y_discrete(position = "left",expand = c(0,0)) +
  theme_void() +
  theme(axis.text.x=element_text(color="black",size=10),
        axis.text.y=element_text(color="black",size=10,
                                 margin=margin(r=0.2,unit="cm")),
        legend.position = "none")

右侧热图绘制

p2 <- ggplot(data=year_2019,aes(x=x,y=age,fill=val)) +
  geom_tile(aes(x=x,y=age,fill=val),color="grey30",linewidth=0.3) +
  geom_text(aes(label=val),vjust=0.5) +
  scale_fill_gradientn(
    colours = rev(colorRampPalette(brewer.pal(11"RdBu")[3:9])(200))) +
  scale_x_discrete(position = "top",expand = c(0,0)) +
  scale_y_discrete(position = "right",expand = c(0,0)) +
  theme_void() +
  theme(axis.text.x=element_text(color="black",size=10),
        axis.text.y=element_text(color="black",size=10,
                                 margin=margin(l=0.2,unit="cm")),
        legend.position = "none")

中间趋势线

p3 <- df %>% 
  mutate(age=factor(age,levels = unique(age))) %>% 
  ggplot(aes(year,val,group=age)) +
  geom_line(linewidth=0.4,color="grey40") +
  facet_grid(age~.,scale="free_y") +
  scale_x_continuous(breaks = c(1990,2000,2010,2019),
                     labels=c(1990,2000,2010,2019)) +
  labs(title="Global Mortality Rates by Age Group (1990-2019)") +
  theme_void() +
  theme(strip.background = element_blank(),
        strip.text = element_blank(),
        plot.title = element_text(vjust=0,hjust=0.5,color="black",size=9))

拼图

(p1|p3|p2)+ plot_layout(widths = c(0.5,3,0.5))

关注下方公众号下回更新不迷路

购买介绍

本节介绍到此结束,需要获取下方所示R绘图案例全部代码的读者,欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档,2025年购买将获取2025年更新的绘图内容,同时将赠送2024年的绘图文档内容,其余内容无

更新的绘图内容包含数据+代码+注释文档+文档清单,小编只分享案例文档,不额外回答问题,无答疑服务,更新截止2025年12月31日结束,后续不在进行任何更新,零基础基础一般不推荐买。

在线目录大纲

淘宝店铺

2025年更新案例图展示

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k