見出し画像

都道府県別接種回数性別年齢別グラフ

概要

圧縮されたjson ファイルを読む。
  js <- jsonlite::stream_in(gzfile(cdestfile) )
factor()を使って積み上げ順序を制御する。
  df$cat2 <- factor(df$cat,levels=( unique(df$cat) %>% sort(.,decreasing = T) ))
カラーマップをコマンドで生成する。
  values=colorspace::rainbow_hcl(50)

サンプルコード


curl <- "https://data.vrs.digital.go.jp/vaccination/opendata/latest/prefecture.ndjson"

cdestfile <- "~/R/R2/covid/prefecture.ndjson"
download.file(curl,cdestfile)
js <- jsonlite::stream_in(gzfile(cdestfile) )
last(js)

df <- cbind(js,cat=paste(js[,6],js[,3],js[,4],sep='-'))
# df$cat2 <- factor(df$cat,levels=c("2-F--64", "2-F-65-", "2-M--64", "2-M-65-", "2-U--64", "2-U-65-", "2-U-UNK","1-F--64", "1-F-65-", "1-M--64", "1-M-65-", "1-M-UNK", "1-U--64", "1-U-65-", "1-U-UNK"))  # factoring cat to set seq.
df$cat2 <- factor(df$cat,levels=( unique(df$cat) %>% sort(.,decreasing = T) ))
df$date <- as.Date(df$date)

p <- ggplot(df, aes(y = count, x = prefecture, fill = cat2))
p <- p + theme_dark (base_family = "HiraKakuPro-W3")
p <- p + theme(axis.text.x = element_text(angle = 90, hjust = 1))
p <- p + theme(panel.background = element_rect(fill = "grey",
                                              colour = "lightblue"),
              legend.key = element_rect(fill='black',colour='white'))

p <- p + scale_fill_manual(name="分類",values=colorspace::rainbow_hcl(50),
label=c("4回目性別不明年齢不明","4回目性別不明65才以上","4回目男64才以下","4回目男65歳以上","4回目男64才以下","4回目女不明","4回目女65才以上","4回目女64才以下","3回目性別不明年齢不明",
"3回目性別不明65才以上","3回目性別不明64才以下","3回目男年齢不明","3回目男65才以上","3回目男64才以下","3回目女年齢不明","3回目女65才以上","3回目女64才以下","2回目性別不明年齢不明","2回目性別不明65才以上",
"2回目性別不明64才以下","2回目男年齢不明","2回目男65才以上","2回目男64才以下","2回目女年齢不明","2回目女65才以上","2回目女64才以下","1回目性別不明年齢不明","1回目性別不明65才以上","1回目性別不明64才以下",
"1回目男年齢不明","1回目男65才以上","1回目男64才以下","1回目女年齢不明","1回目女65才以上","1回目女64才以下" ))

p <- p + geom_bar(stat = "identity")
# p <- p + theme(legend.position = 'none')
p <- p + scale_x_discrete(label=substr(pref_jp,1,3))
png("~/Dropbox/R-script/covid/w.png", width = 1600, height = 800)
plot(p)
dev.off()

出力結果

画像1

カテゴリーコード一覧

使用されているコードの一覧は以下の通り。

> unique(df$cat) %>% sort(.,decreasing = T)
"4-U-UNK" "4-U-65-" "4-U--64" "4-M-65-" "4-M--64" "4-F-UNK" "4-F-65-" "4-F--64" "3-U-UNK" "3-U-65-" "3-U--64" "3-M-UNK" "3-M-65-" "3-M--64" "3-F-UNK" "3-F-65-" "3-F--64" "2-U-UNK" "2-U-65-" "2-U--64" "2-M-UNK" "2-M-65-" "2-M--64" "2-F-UNK" "2-F-65-" "2-F--64" "1-U-UNK" "1-U-65-" "1-U--64" "1-M-UNK" "1-M-65-" "1-M--64" "1-F-UNK" "1-F-65-" "1-F--64"

上記をそれぞれ以下のカテゴリー名として表示する。例えば、"4-U-UNK"は"4回目性別不明年齢不明"となる。コードは回数(1から4までの4種類)、性別(男、女、不明の3種類)、年齢(65歳以上、64歳以下、不明の3種類)。したがって、将来仮に5回目以降の接種が行われれば回数には5以上の数が入ることもある。また既存コードには理論的にはあり得るが使われていないコードがある(例:"4-M-UNK")。これらも将来的に該当する事例が現れれば追加される。

label=c("4回目性別不明年齢不明","4回目性別不明65才以上","4回目男64才以下","4回目男65歳以上","4回目男64才以下","4回目女不明","4回目女65才以上","4回目女64才以下","3回目性別不明年齢不明","3回目性別不明65才以上","3回目性別不明64才以下","3回目男年齢不明","3回目男65才以上","3回目男64才以下","3回目女年齢不明","3回目女65才以上","3回目女64才以下","2回目性別不明年齢不明","2回目性別不明65才以上","2回目性別不明64才以下","2回目男年齢不明","2回目男65才以上","2回目男64才以下","2回目女年齢不明","2回目女65才以上","2回目女64才以下","1回目性別不明年齢不明","1回目性別不明65才以上","1回目性別不明64才以下","1回目男年齢不明","1回目男65才以上","1回目男64才以下","1回目女年齢不明","1回目女65才以上","1回目女64才以下" )


この記事が気に入ったらサポートをしてみませんか?