前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2优雅绘制时间趋势变化散点图

ggplot2优雅绘制时间趋势变化散点图

作者头像
R语言数据分析指南
发布2022-12-20 19:52:40
5170
发布2022-12-20 19:52:40
举报

❝本节来介绍一个小案例,如何绘制趋势变化散点图,数据主要展示世界主要国家近70年间GDP收入与lifeExp之间的关系,通过时间趋势的变化来更加直观的查看结果。

加载R包

代码语言:javascript
复制
library(tidyverse)
library(scales)
library(camcorder)
library(shadowtext)
library(ggh4x)

数据清洗

代码语言:javascript
复制
df <- read_tsv("data.xls") %>% 
# 由于海湾战争的缘故Kuwait的数据比较异常因此在此剔除
  filter(country!="Kuwait",continent!="Oceania") %>% 
  arrange(year) %>% 
  group_by(country) %>% 
  mutate(label = if_else(year == max(year), country, NULL)) %>% 
  ungroup()

自定义分面

代码语言:javascript
复制
ridiculous_strips <- strip_themed(
  text_x = elem_list_text(colour=c("#9C8D58","#EDB749","#3CB2EC","red"),
                          face=c("bold","bold","bold"),size=c(10,10,10,10)),
  background_x = elem_list_rect(fill = c("#EEECE1","#FFF2E7","#E8F2FC","#E8F2FC")))

数据可视化

代码语言:javascript
复制
ggplot(df,aes(x = gdpPercap, y = lifeExp,
                  group = country , label = label)) +
  geom_path(aes(size = year), color = "salmon") +
  geom_point(data = df %>% filter(label != ""),color = "brown") +
  # 定义文本信息
  geom_shadowtext(aes(alpha = 0.5), hjust = 0, nudge_y = 1,
                  nudge_x = 1000, check_overlap = TRUE,
                  color = "#020271", size=3.5, bg.colour =  "#CFDBE3", bg.r = 0.08) +
  facet_wrap2(vars(continent),scales = "free_y",axes = "y",remove_labels = "x",
              strip = ridiculous_strips)+
  scale_size_continuous(range = c(0.3, 0.8)) +
  scale_alpha_identity() +
  scale_x_continuous(labels = label_number()) +
  coord_cartesian(clip = "off") +
  theme_minimal() +
  theme(panel.spacing.x = unit(0.1,"cm"),
        panel.spacing.y = unit(0.15,"cm"),
        axis.title = element_blank(),
        strip.background = element_rect(fill="grey80",color="white"),
        strip.text.x = element_text(size=9,color="black"),
        axis.text = element_text(color="black"),
        plot.margin = margin(10,60,10,10),
        legend.position = "non")

❝通过结果可以看出北欧等发达国家收入较高人均预期寿命也比较高,此图适用与有时间趋势变化的数据。那么本节介绍到此结束

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ❝本节来介绍一个小案例,如何绘制趋势变化散点图,数据主要展示世界主要国家近70年间GDP收入与lifeExp之间的关系,通过时间趋势的变化来更加直观的查看结果。
  • 加载R包
  • 数据清洗
  • 自定义分面
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档