欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何用R绘制新冠病毒世界格局(1)

程序员文章站 2024-03-08 11:29:40
...

 

今天这篇我们先用ggplot2包做一下主要地区和城市的疫情格局,用点(point)的形式来展示数据,好处是可以看出较小的国家和具体城市的情况。

下一篇我们再给大家展示用多边形(polygon)的形式展示数据,来看出各个国家/地区的整体情况。

 

利用install.packages("package_name")安装几个必要的安装包,加载备用。

install.packages("tidyverse")
install.packages("ggplot2")
install.packages("maps")
install.packages("viridis")
install.packages("readr")
install.packages("viridisLite")

library(tidyverse)
library(ggplot2)
library(maps)
library(viridis)
library(readr)

 

下载数据

最新数据可以从Johns Hopkins University Center for SystemsScience and Engineering (JHU CSSE)下载:https://systems.jhu.edu

Github上有整理好的数据(https://github.com/CSSEGISandData/COVID-19),我们可以直接下载。

先来下载确诊病例的数据。

Confirmed <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv")).

以下是原始数据截图,有的国家比如中国美国有细化到省/州的数据,较小的国家就只有全国整体数据,比如泰国,日本等。

如何用R绘制新冠病毒世界格局(1)

 

查看最新的数据

这个数据每天23:59会更新,写这篇文章的时候最新的日期是2020年3月15日,所以我们用这个日期。上面截图中只显示到了1月30日,但后边每天都会添加新的一栏数据。用下面这个代码查看最新日期的数据

select(Confirmed,tail(names(Confirmed),1))

加载世界地图

world <-map_data("world")
ggplot() +geom_polygon(data=world, aes(x=long, y=lat, group=group), fill="grey")

如何用R绘制新冠病毒世界格局(1)

 

开始作图了

ggplot()+
  geom_polygon(data=world,aes(x=long,y=lat,group=group),fill="grey",alpha=0.3) +
  geom_point(data=Confirmed,aes(x=Long,y=Lat,size=`3/15/20`,color=`3/15/20`),alpha=0.5)

粗略做出效果:

如何用R绘制新冠病毒世界格局(1)

mybreaks<- c(1, 20, 100, 1000, 50000)
mylabels<- c("1-19", "20-99", "100-999","1,000-49,999", "50,000+")
ggplot() +
  geom_polygon(data=world, aes(x=long, y=lat,group=group), fill="grey", alpha=0.3) +
  geom_point(data=Confirmed, aes(x=Long, y=Lat,size=`3/15/20`, color=`3/15/20`), alpha=0.5) +
  scale_size_continuous(name="Confirmedcases", trans="log", range=c(1,7), breaks=mybreaks,labels=mylabels) +
  scale_colour_viridis_c(option="inferno", direction=-1,name="Confirmed cases", trans="log", breaks=mybreaks,labels=mylabels) +
  guides(colour=guide_legend()) +
  theme_void() +
  theme(legend.position="bottom")

细调参数进行美化:

如何用R绘制新冠病毒世界格局(1)

做死亡病例和治愈病例的地图

Deaths <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv"))
Recovered <-read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv"))

如何用R绘制新冠病毒世界格局(1)

如何用R绘制新冠病毒世界格局(1)

 

相关标签: R