Data and methods
- Target area and regional unit: Prefectures in Japan
- Target periods: 2020/04/11
- Visualize by barchart
- Visualize by scatter plot (future studies)
Libraries
> library(readr)
> library(readxl)
> library(dplyr)
> library(tidyr)
> library(lubridate)
> library(ggplot2)
Data load and data cleaning
> pa <- read_csv("prefectures_all_0415.csv", locale = locale(encoding = "SHIFT-JIS"))
> pa %>% mutate(date = paste(年,formatC(月, width = 2, flag = "0"),formatC(日, width = 2, flag = "0"), sep="-") %>% ymd()) -> pa
>
> dates <- pa$date
> min.date <- min(dates)
> max.date <- max(dates)
> min.date.txt <- min.date %>% format('%d %b %Y')
> max.date.txt <- max.date %>% format('%d %b %Y')
>
>
> pa %>% filter(年==2020, 月==4, 日==11) %>% select(pref = 都道府県,infected = '患者数(2020年3月28日からは感染者数)', deaths = 死亡者 ) -> pa.latest
> pa.latest %>% mutate(ranking = dense_rank(desc(infected))) -> pa.latest
>
> k <- 20
> ## top 20 prefectures
> top.prefectures <- pa.latest %>% filter(ranking <= k) %>% arrange(ranking) %>% pull(pref) %>% as.character()
> top.prefectures %>% c('その他') -> top.prefectures
> pa.latest %>% mutate(pref = ifelse(ranking <= k, as.character(pref), 'その他')) %>% mutate(pref = pref %>% factor(levels=c(top.prefectures))) -> pa.latest
> pa.latest %>% group_by(pref) %>% summarise(infected=sum(infected), deaths=sum(deaths)) %>% mutate(death.rate=(100 * deaths/infected) %>% round(1)) -> pa.latest
>
> pa.latest %>% gather(key=type, value=count, -pref) -> pa.latest.long
>
> pa.latest.long <- pa.latest.long %>% mutate(type=recode_factor(type,
+ infected='Total infected',
+ deaths='Total Deaths',
+ death.rate='Death Rate (%)'))
Bar chart
> pa.latest.long %>% ggplot(aes(x=pref, y=count, fill=pref, group=pref)) +
+ geom_bar(stat='identity') +
+ geom_text(aes(label=count, y=count), size=2, vjust=0) +
+ xlab('') + ylab('') +
+ labs(title=paste0('Top 20 prefectures with Most infected Cases - ', max.date.txt)) +
+ scale_fill_discrete(name='Prefecture', labels=aes(count)) +
+ theme(legend.title=element_blank(),
+ legend.position='none',
+ plot.title=element_text(size=11),
+ axis.text=element_text(size=7),
+ axis.text.x=element_text(angle=45, hjust=1)) +
+ facet_wrap(~type, ncol=1, scales='free_y')
