如何用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")).
以下是原始数据截图,有的国家比如中国美国有细化到省/州的数据,较小的国家就只有全国整体数据,比如泰国,日本等。
查看最新的数据
这个数据每天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")
开始作图了
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)
粗略做出效果:
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")
细调参数进行美化:
做死亡病例和治愈病例的地图
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"))
上一篇: SpringMVC访问静态资源的方法
下一篇: Java中对象的序列化方式克隆详解
推荐阅读