LoginSignup
0
0

More than 3 years have passed since last update.

新規感染者数の対数plot

Posted at

対数plotで推移を見たいんだが何故かあまり見かけないのでちょっと暇があったので、自分で書いてみた。

1

元データは(とりあえず東京でいいやということで)、 https://stopcovid19.metro.tokyo.lg.jp ここにあるのは分かって、「テーブルを表示」を選択すると日毎の新規感染者数がちゃんと見れるので、これをplotするだけ。
どうせなら、URL指定して R から直接読みたいなと思ったら、「オープンデータを入手」から「探索」タブでダウンロードを選んだらなんと一人づつの情報が取れてしまう。

そうじゃなくて…、と思ったが、まあ R は統計解析向けの処理系だからヒストグラム書くぐらい簡単にできるだろと思ったのでなんとか手でこねくり回してみた。

とりあえず、table()とかやるとヒストグラム化できるっぽい(返ってきたデータをどう加工できるのかは不明)。
標準的なplot()命令で対数プロットは普通にかける。
str(dat)で列名などが確認でき、$列名で参照すればいい。

# CSV読み込み。普通にURLで指定できる
dat <- read.csv('https://stopcovid19.metro.tokyo.lg.jp/data/130001_tokyo_covid19_patients.csv')
# データの確認
str(dat)
# "公表_年月日"列でカウントできる(返ってくるのはなんかのテーブル構造)
dat2 <- table(dat$公表_年月日)
# log plotする。0を含んでいたので範囲指定必要
plot(dat2, log="y", ylim=c(1,1e4))

こんな、欲しかった絵が得られた。

plot1.png

やっぱりサチってるよなぁ

2

曜日の効果を消してみたくて、まずはこんなことをしてみた

# 年月日と曜日2D hist
dat3 <- table(dat$公表_年月日, dat$曜日)
# hist3Dはplot3Dに含まれているのでパッケージ読み込み
library(plot3D)
# 描画
hist3D(z=dat3, border = "black", phi=10, theta=-30)

こんな図が得られる。

hist1.png

plot3Dは最初install.packages("plot3D")でインストールしてやる必要があった(どこにインストールされるのかは不明)。
残念ながらhist3Dの対数プロットはできなさそう。
ついでに、日付と曜日でグリッドが切られているのでbinがちょー薄い。
そして一番の問題は、曜日が(年月日もだが)文字列に過ぎないので、文字コード順か何かになって意図した曜日順に並んでくれない。

> head(dat3)

                   
  2020-01-24  0  1  0  0  0  0  0
  2020-01-25  0  0  0  0  1  0  0
  2020-01-30  0  0  0  0  0  0  1
  2020-02-13  0  0  0  0  0  0  1
  2020-02-14  0  2  0  0  0  0  0
  2020-02-15  0  0  0  0  8  0  0

3

要するに、週番号と曜日番号を年月日文字列から一旦Dateクラスを経由して生成してやる必要があって、

dat$n1 <- as.Date(dat$公表_年月日)
dat$n2 <- format(dat$n1, "%U")
dat$n3 <- format(dat$n1, "%w")
dat4 <- table(dat$n2, dat$n3)
hist3D(z=dat4, border = "black", phi=45, theta=25)

とか作ってやれば

> tail(dat4)

       0   1   2   3   4   5   6
  27 111 102 106  75 224 243 206
  28 206 119 143 165 286 293 290
  29 188 168 237 238 366 260 295
  30 239 131 266 250 367 463 472
  31 292 258 309 263 360 462 429
  32 331 197 188 222 206 389   0

hist2.png

欲しかったデータは作れているっぽい。

しかしhist3Dで対数プロットできないのはつらいなぁ。あと、角度を急にしてみると描画が結構バグる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0