我们的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)