使用nCov2019包可视化新冠肺炎疫情
2020-02-25 本文已影响0人
你猜我菜不菜
从今年1月24号县城封城到现在已经整整一个月了,在家憋得难受,小区不让进出,连小区楼下也不让溜达了,就想出去走走,哎,还是不跟国家添堵了,坚持就是胜利。最近Y叔发布了一个R包nCov2019可以爬取腾讯网上的疫情数据,然后可视化疫情情况,今天来学习一下这个包,调节一下情绪。
1. nCov2019包的安装
> remotes::install_git('https://gitee.com/GuangchuangYu/nCov2019')
remotes::install_github("GuangchuangYu/nCov2019")这个方法也可以,但我没成功,在家网真不行。
2. 疫情数据的载入
#载入数据
> library(nCov2019)
> x = load_nCov2019()
> x
nCov2019 historical data
last update: 2020-02-23
> head(x[])
time province city cum_confirm cum_heal cum_dead suspected
1 2020-01-25 广西 梧州 1 0 0 0
2 2020-01-25 湖北 恩施州 11 0 0 0
3 2020-01-25 广东 韶关 3 0 0 0
4 2020-01-25 重庆 合川区 2 0 0 0
5 2020-01-25 重庆 璧山区 2 0 0 0
6 2020-01-25 重庆 涪陵区 1 0 0 0
3. 全国疫情情况
#本地安装github上的中国地图包chinamap,在github上手动下载后解压,然后运行install.packages()命令
> install.packages("C:/Users/Administrator/Documents/R_work/chinamap-master",repos=NULL,type="source")
> require(chinamap)
Loading required package: chinamap
> cn = get_map_china()
Loading required package: sp
Regions defined for each Polygons
> x = get_nCov2019()
> plot(x, region='china', chinamap=cn,continuous_scale=FALSE,palette='Blues')
Warning: Ignoring unknown aesthetics: x, y
全国疫情情况
4. 各省市疫情情况
4.1宜昌累计确诊人数和死亡人数
> all = load_nCov2019()
> yc = subset(all['湖北',], city == '宜昌')
> yc
time province city cum_confirm cum_heal cum_dead suspected
189 2020-01-25 湖北 宜昌 1 0 1 0
421 2020-01-26 湖北 宜昌 20 0 1 0
536 2020-01-28 湖北 宜昌 51 0 1 0
908 2020-01-29 湖北 宜昌 63 0 1 0
1067 2020-01-30 湖北 宜昌 117 0 1 0
1529 2020-01-31 湖北 宜昌 167 0 1 0
1897 2020-02-01 湖北 宜昌 276 0 1 0
2416 2020-02-02 湖北 宜昌 353 0 1 0
2924 2020-02-03 湖北 宜昌 392 2 1 0
3169 2020-02-04 湖北 宜昌 452 2 3 0
3477 2020-02-05 湖北 宜昌 496 9 4 0
3975 2020-02-06 湖北 宜昌 563 9 6 0
4283 2020-02-07 湖北 宜昌 610 15 7 0
4738 2020-02-08 湖北 宜昌 633 25 8 0
5143 2020-02-09 湖北 宜昌 711 36 8 0
5510 2020-02-10 湖北 宜昌 749 43 8 0
6080 2020-02-11 湖北 宜昌 772 52 8 0
6411 2020-02-12 湖北 宜昌 784 62 8 0
6979 2020-02-13 湖北 宜昌 810 72 11 0
7253 2020-02-14 湖北 宜昌 877 82 13 0
7677 2020-02-15 湖北 宜昌 906 92 15 0
8098 2020-02-16 湖北 宜昌 901 140 21 0
8399 2020-02-17 湖北 宜昌 895 156 24 0
9088 2020-02-18 湖北 宜昌 904 186 24 0
9514 2020-02-19 湖北 宜昌 907 208 25 0
9668 2020-02-20 湖北 宜昌 891 231 27 0
10093 2020-02-21 湖北 宜昌 895 250 28 0
10518 2020-02-22 湖北 宜昌 914 273 29 0
10944 2020-02-23 湖北 宜昌 917 289 29 0
> library(ggplot2)
> colors <- c("cum_confirm" = "blue", "cum_dead" = "red")
> p <- ggplot(yc,aes(x = time)) +
geom_line(yc, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1) +
geom_point(yc, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1.5) +
geom_line(yc, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1) +
geom_point(yc, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1.5) +
labs(y = "人数", x = "时间", title = "新冠肺炎疫情(宜昌)",
color = "") +
scale_color_manual(labels = c("累计确诊", "累计死亡"),values = colors) +
theme_bw() + theme(plot.title = element_text(size = 16,hjust = 0.5),
legend.position = c(0,1),legend.justification = c(0,1),
legend.text = element_text(size=12),
legend.background = element_blank())
> p
宜昌疫情
4.2 武汉累计确诊人数和死亡人数
> wh = subset(all['湖北',], city == '武汉')
> wh
time province city cum_confirm cum_heal cum_dead suspected
167 2020-01-25 湖北 武汉 572 32 38 0
356 2020-01-26 湖北 武汉 618 40 45 0
532 2020-01-28 湖北 武汉 1590 47 85 0
881 2020-01-29 湖北 武汉 1905 54 104 0
1058 2020-01-30 湖北 武汉 2261 54 129 0
1458 2020-01-31 湖北 武汉 2639 103 159 0
1891 2020-02-01 湖北 武汉 3215 106 192 0
2507 2020-02-02 湖北 武汉 4109 175 224 0
2932 2020-02-03 湖北 武汉 5142 228 265 0
3160 2020-02-04 湖北 武汉 6384 306 313 0
3683 2020-02-05 湖北 武汉 8351 374 362 0
3979 2020-02-06 湖北 武汉 10117 455 414 0
4296 2020-02-07 湖北 武汉 11618 542 478 0
4698 2020-02-08 湖北 武汉 13603 747 545 0
5423 2020-02-09 湖北 武汉 14982 878 608 0
5551 2020-02-10 湖北 武汉 16902 1046 681 0
6112 2020-02-11 湖北 武汉 18454 1242 748 0
6277 2020-02-12 湖北 武汉 19558 1380 820 0
6811 2020-02-13 湖北 武汉 32994 1923 1036 0
7255 2020-02-14 湖北 武汉 35991 2023 1016 0
7910 2020-02-15 湖北 武汉 37914 2535 1123 0
8078 2020-02-16 湖北 武汉 39462 2925 1233 0
8392 2020-02-17 湖北 武汉 41152 3507 1309 0
9097 2020-02-18 湖北 武汉 42752 4253 1381 0
9523 2020-02-19 湖北 武汉 44412 5040 1497 0
9661 2020-02-20 湖北 武汉 45027 5598 1585 0
10086 2020-02-21 湖北 武汉 45346 6281 1684 0
10511 2020-02-22 湖北 武汉 45660 7292 1774 0
10937 2020-02-23 湖北 武汉 46201 8189 1856 0
武汉疫情
4.3 浙江累计确诊人数和死亡人数
hz = subset(all['浙江',], city == '杭州')
hz
p2 <- ggplot(wh,aes(x = time)) +
geom_line(hz, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1) +
geom_point(hz, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1.5) +
geom_line(hz, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1) +
geom_point(hz, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1.5) +
labs(y = "人数", x = "时间", title = "新冠肺炎疫情(杭州)",
color = "") +
scale_color_manual(labels = c("累计确诊", "累计死亡"),values = colors) +
theme_bw() + theme(plot.title = element_text(size = 16,hjust = 0.5),
legend.position = c(0,1),legend.justification = c(0,1),
legend.text = element_text(size=12),
legend.background = element_blank())
杭州疫情
武汉的疫情依然没有显著好转,宜昌和杭州这两地已经稳定,应该把治愈出院人数减出去,看确诊的存量变化,下次再研究吧!
今天2月25号,仔细看看宜昌疫情。
library(nCov2019)
all = load_nCov2019()
yc = subset(all['湖北',], city == '宜昌')
yc
library(ggplot2)
colors <- c("cum_confirm" = "blue", "cum_dead" = "red",
"cum_heal" ="yellow","cum_stock" = "green" )
p <- ggplot(yc,aes(x = time)) +
geom_line(yc, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1) +
geom_point(yc, mapping = aes(y = cum_confirm,color = "cum_confirm"),size = 1.5) +
geom_line(yc, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1) +
geom_point(yc, mapping = aes(y = cum_dead,color = "cum_dead"),size = 1.5) +
geom_line(yc, mapping = aes(y = cum_heal,color = "cum_heal"),size = 1) +
geom_point(yc, mapping = aes(y = cum_heal,color = "cum_heal"),size = 1.5) +
geom_line(yc, mapping = aes(y = (cum_confirm-cum_heal),color = "cum_stock"),size = 1) +
geom_point(yc, mapping = aes(y = (cum_confirm-cum_heal),color = "cum_stock"),size = 1.5) +
labs(y = "人数", x = "时间", title = "新冠肺炎疫情(宜昌)",
color = "") +
scale_color_manual(labels = c("累计确诊", "累计死亡", "累计出院","确诊未出院"),values = colors) +
theme_bw() + theme(plot.title = element_text(size = 16,hjust = 0.5),
legend.position = c(0,1),legend.justification = c(0,1),
legend.text = element_text(size=12),
legend.background = element_blank())
p
宜昌疫情