前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2 案例:使用 ggplot2 绘制绘制一幅气泡地图展示各国疫情状况

ggplot2 案例:使用 ggplot2 绘制绘制一幅气泡地图展示各国疫情状况

作者头像
王诗翔呀
发布2020-07-06 17:57:39
1.1K0
发布2020-07-06 17:57:39
举报
文章被收录于专栏:优雅R优雅R

新冠肺炎确诊患者们都分布在那里呢?约翰·霍普金斯大学提供了一份数据集,使用这份数据集我们可以绘制一幅气泡地图展示这些确诊患者的分布,代码比较简单:

首先导入我们需要的几个 R 包:

代码语言:javascript
复制
library(ggplot2)
library(sf)
library(readr)
library(dplyr)

导入世界地图并把 crs 转换成 4326(其实这份数据的 crs 就是 4326):

代码语言:javascript
复制
worldmap <- read_sf('world.geo.json') %>%
  st_transform(crs = 4326)

把疫情数据读取进来并根据经纬度坐标把这个数据框转换成 sf 对象,同样使用 4326 投影坐标系,这样地图和数据才不会分家:

代码语言:javascript
复制
read_csv('time_series_19-covid-Confirmed.csv') %>%
  select(Lat, Long, `3/4/20`) %>%
  `colnames<-`(c("lat", "long", "con")) %>%
  st_as_sf(coords = c("long", "lat"), crs = 4326) -> con_df

最后绘制地图:

代码语言:javascript
复制
mybreaks <- c(1, 20, 100, 1000, 50000)
ggplot(worldmap) +
  geom_sf(size = 0.1, color = "white", fill = NA) +
  geom_sf(data = con_df, aes(size = con,
                             color = con)) +
  theme_modern_rc(base_family = cnfont,
                  subtitle_family = cnfont,
                  caption_family = cnfont,
                  grid = "") +
  worldtilegrid::theme_enhance_wtg() +
  theme(panel.grid = element_blank()) +
  scale_size_continuous(name = "Confirmed cases",
                        trans = "log",
                        range = c(1, 7),
                        breaks = mybreaks,
                        labels = c("1-19", "20-99", "100-999", "1,000-49,999", "50,000+")) +
  scale_color_viridis_c(option = "inferno",
                        name = "Confirmed cases",
                        trans = "log",
                        breaks = mybreaks,
                        labels = c("1-19", "20-99", "100-999", "1,000-49,999", "50,000+")) +
  guides(color = guide_legend()) +
  labs(title = "新冠肺炎的全球分布",
       subtitle = "截止:2020 年 3 月 4 日",
       caption = "数据来源: CSSEGISandData/COVID-19: Novel Coronavirus (COVID-19) Cases, provided by JHU CSSE\nhttps://github.com/CSSEGISandData/COVID-19\n绘制:TidyFriday")

❝本文的附件和代码可以从知识星球下载:https://t.zsxq.com/iEYVjqr ❞

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

本文分享自 优雅R 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档