新冠全球历史数据
我们的nCov2019
包,悄咪咪地加入了全球的历史数据。
历史数据,一如既往地用load_nCov2019()
函数获得。然后历史数据嘛,也是一样使用x['global']
获得。
> require(nCov2019)
Loading required package: nCov2019
> x = load_nCov2019()
> d = x['global']
> head(d)
time country cum_confirm cum_heal cum_dead
1 2019-12-01 China 1 0 0
2 2019-12-02 China 1 0 0
3 2019-12-03 China 1 0 0
4 2019-12-04 China 1 0 0
5 2019-12-05 China 1 0 0
6 2019-12-06 China 1 0 0
> tail(d)
time country cum_confirm cum_heal cum_dead
1606 2020-03-08 Tunisia 1 0 0
1607 2020-03-08 Ukraine 1 0 0
1608 2020-03-08 United States 445 10 19
1609 2020-03-08 Holy See [Vatican City State] 1 0 0
1610 2020-03-08 Vietnam 30 16 0
1611 2020-03-08 South Africa 2 0 0
之前的lang
参数照常使用,用于指定语言。如果不指定,则会通过R的语言设定来自动设置语言,简单点讲就是你的R是中文的,自动使用中文,其它情况则使用英文。
首先让我们把中国的数据去掉。
> d = d[d$country != 'China',]
再过滤出确诊人数最多的十个国家:
require(dplyr)
n <- d %>% filter(time == time(x)) %>%
top_n(10, cum_confirm) %>%
arrange(desc(cum_confirm)) %>%
pull(country)
这十个国家,我们按照人数排个序:
> n
[1] "South Korea" "Iran" "Italy" "Japan"
[5] "France" "Germany" "Spain" "United States"
[9] "Switzerland" "United Kingdom"
接下来,就拿这前十,简单地画个图:
require(ggplot2)
require(ggrepel)
ggplot(filter(d, country %in% n),
aes(time, cum_confirm, color=country)) +
geom_line() +
geom_text_repel(aes(label=country),
function(d) d[d$time == time(x),]) +
theme_minimal(base_size=14) +
theme(legend.position = "none") +
xlab(NULL) + ylab(NULL)
另外我们的地图函数也更新了,可以指定国家,把特定国家给画出来,比如此处我们画前四的国家。
pp = lapply(n[1:4], function(cc) plot(x, region=cc))
cowplot::plot_grid(plotlist=pp)