こんにちは、四谷ラボのやましんです。新型コロナウイルスは、新しい風邪の一種と言われても、やっぱり怖いですよね。
各地で大勢の人が集まるイベントが中止される中、四谷ラボで開催するイベントも中止すべきかどうか悩ましいところです。
新型コロナウイルスの正体も、いまいちよくわかっていないようなので、今回は感染者数の推移から状況を把握したいと思います。
感染者数は各国が発表する数値で、国によってその信ぴょう性のばらつきはあるかも知れません。
可視化プログラムと使用したデータも掲載しますので、ご利用ください。
国別感染者数の推移
2月17日時点で、感染者数の多い国から順に、感染者数の推移を可視化しました。
各国で感染者数が大きく異なり、信ぴょう性も異なると思うので、単純に比較することはできません。
トータル
トータルですが、ほとんどが中国の感染者数ですね。
中国
2/12頃の傾斜の変化が気になる。
クルーズ船
国ではないですが、可視化しました。 傾斜はきついですね。
シンガポール
典型的な成長曲線になってるなぁ。
日本
データ数が少ないので、一概に言えませんが、最近の増加率が気になる。
香港
日本と同じような傾き
タイ
最近の増加が抑えられているような。
韓国
こうやってみると、中国、クルーズ船、シンガポール、日本、香港以外は、傾斜が緩やかになっているよう。
以下は参考まで。
マレーシア
台湾
ベトナム
ドイツ
オーストラリア
米国
フランス
マカオ
英国
UAE
カナダ
フィリピン
インド
イタリア
ロシア
スペイン
カンボジア
スリランカ
ネパール
エジプト
ベルギー
スウェーデン
フィンランド
プログラム
後述するcsv ファイルを読み込んで、グラフを表示するプログラムです。python3です。
# -*- coding: utf-8 -*- import sys import matplotlib import matplotlib.pyplot as plt import numpy as np import csv import matplotlib.dates as mdates from datetime import datetime as dt matplotlib.use('TkAgg') def read_csv(filename): data = {} timestamp = [] with open(filename) as f: reader = csv.reader(f) header = next(reader) for row in reader: for cnt, name in enumerate(header): if name not in data: data[name] = [] if name == 'timestamp': timestamp.append(dt.strptime(row[cnt], '%Y-%m-%d')) else: data[name].append(int(row[cnt])) return timestamp, data def plot_graph(timestamp, data): num_of_country = len(data) - 1 horizontal = 1 vertical = 1 for i in range(int(num_of_country/(horizontal*vertical))+1): fig = plt.figure(figsize=(20,10),dpi=200) #fig.suptitle('Infections of a new coronavirus', fontsize=30) start = i * vertical * horizontal end = min(start + vertical * horizontal,num_of_country) cnt = 1 for key, value in sorted(data.items(), key=lambda x:np.max(x[1], initial=0),reverse=True)[start:end]: ax = fig.add_subplot(vertical, horizontal, cnt) ax.set_xticklabels(timestamp, fontsize=18, rotation=0) ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d')) ax.plot(timestamp, value) ax.set_xlabel('Date',fontsize=20) ax.set_ylabel('Number of people infected',fontsize=20) ax.set_title(key,fontsize=25) ax.grid() cnt += 1 #plt.show() output = 'new_coronavirus_' + str(i) + '.png' plt.savefig(output) plt.close() if __name__ == '__main__': args = sys.argv filename = args[1] print(filename) timestamp, data = read_csv(filename) plot_graph(timestamp, data)
使用したデータ
2020年2月17日までの各国が発表している感染者数のデーターです。csvファイルが欲しい方は、ご連絡ください。
timestamp | China | Cruiseship | Japan | Korea | Taiwan | HongKong | Macau | Philippines | Vietnam | Cambodia | Thailand | Malaysia | Singapore | Australia | SriLanka | India | Nepal | Russia | UAE | Egypt | Italy | Germany | France | Spain | Belgium | UK | Sweden | Finland | USA | Canada | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2020-01-11 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-12 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-13 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-14 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-15 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-16 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
2020-01-17 | 45 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 45 |
2020-01-18 | 62 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 62 |
2020-01-19 | 121 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 121 |
2020-01-20 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 198 |
2020-01-21 | 291 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 295 |
2020-01-22 | 440 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 446 |
2020-01-23 | 571 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 581 |
2020-01-24 | 830 | 0 | 1 | 2 | 1 | 2 | 2 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 846 |
2020-01-25 | 1287 | 0 | 3 | 2 | 3 | 5 | 2 | 0 | 2 | 0 | 4 | 0 | 3 | 3 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1320 |
2020-01-26 | 1975 | 0 | 3 | 2 | 3 | 5 | 2 | 0 | 2 | 0 | 5 | 3 | 4 | 4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 2014 |
2020-01-27 | 2744 | 0 | 4 | 4 | 4 | 8 | 5 | 0 | 2 | 0 | 5 | 4 | 4 | 4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 5 | 1 | 2798 |
2020-01-28 | 4515 | 0 | 6 | 4 | 7 | 8 | 7 | 0 | 2 | 1 | 14 | 4 | 7 | 5 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 3 | 0 | 0 | 0 | 0 | 0 | 5 | 2 | 4593 |
2020-01-29 | 5974 | 0 | 7 | 4 | 8 | 8 | 7 | 0 | 2 | 1 | 14 | 4 | 7 | 7 | 1 | 0 | 1 | 0 | 4 | 0 | 0 | 4 | 4 | 0 | 0 | 0 | 0 | 0 | 5 | 3 | 6065 |
2020-01-30 | 7711 | 0 | 11 | 4 | 8 | 10 | 7 | 1 | 2 | 1 | 14 | 7 | 10 | 7 | 1 | 1 | 1 | 0 | 4 | 0 | 0 | 4 | 5 | 0 | 0 | 0 | 0 | 1 | 5 | 3 | 7818 |
2020-01-31 | 9692 | 0 | 14 | 11 | 9 | 12 | 7 | 1 | 5 | 1 | 14 | 8 | 13 | 9 | 1 | 1 | 1 | 0 | 4 | 0 | 2 | 5 | 6 | 0 | 0 | 0 | 0 | 1 | 6 | 3 | 9826 |
2020-02-01 | 11791 | 0 | 17 | 12 | 10 | 13 | 7 | 1 | 6 | 1 | 19 | 8 | 16 | 12 | 1 | 1 | 1 | 2 | 4 | 0 | 2 | 7 | 6 | 1 | 0 | 2 | 1 | 1 | 7 | 4 | 11953 |
2020-02-02 | 14380 | 0 | 20 | 15 | 10 | 14 | 7 | 2 | 7 | 1 | 19 | 8 | 18 | 12 | 1 | 2 | 1 | 2 | 5 | 0 | 2 | 8 | 6 | 1 | 0 | 2 | 1 | 1 | 8 | 4 | 14557 |
2020-02-03 | 17205 | 0 | 20 | 15 | 10 | 15 | 8 | 2 | 8 | 1 | 19 | 8 | 18 | 12 | 1 | 3 | 1 | 2 | 5 | 0 | 2 | 10 | 6 | 1 | 0 | 2 | 1 | 1 | 11 | 4 | 17391 |
2020-02-04 | 20438 | 0 | 20 | 16 | 10 | 15 | 8 | 2 | 9 | 1 | 19 | 10 | 18 | 12 | 1 | 3 | 1 | 2 | 5 | 0 | 2 | 12 | 6 | 1 | 0 | 2 | 1 | 1 | 11 | 4 | 20630 |
2020-02-05 | 24324 | 10 | 23 | 18 | 11 | 18 | 10 | 3 | 10 | 1 | 25 | 10 | 24 | 13 | 1 | 3 | 1 | 2 | 5 | 0 | 2 | 12 | 6 | 1 | 1 | 2 | 1 | 1 | 11 | 5 | 24554 |
2020-02-06 | 28018 | 20 | 25 | 23 | 11 | 21 | 10 | 3 | 10 | 1 | 25 | 12 | 28 | 14 | 1 | 3 | 1 | 2 | 5 | 0 | 2 | 12 | 6 | 1 | 1 | 2 | 1 | 1 | 12 | 5 | 28276 |
2020-02-07 | 31147 | 61 | 25 | 24 | 16 | 24 | 10 | 3 | 12 | 1 | 25 | 14 | 30 | 15 | 1 | 3 | 1 | 2 | 5 | 0 | 3 | 13 | 6 | 1 | 1 | 3 | 1 | 1 | 12 | 7 | 31467 |
2020-02-08 | 34542 | 64 | 25 | 24 | 16 | 26 | 10 | 3 | 13 | 1 | 32 | 15 | 33 | 15 | 1 | 3 | 1 | 2 | 7 | 0 | 3 | 14 | 6 | 1 | 1 | 3 | 1 | 1 | 12 | 7 | 34882 |
2020-02-09 | 37109 | 64 | 26 | 27 | 17 | 26 | 10 | 3 | 14 | 1 | 32 | 17 | 40 | 15 | 1 | 3 | 1 | 2 | 7 | 0 | 3 | 14 | 11 | 1 | 1 | 3 | 1 | 1 | 12 | 7 | 37469 |
2020-02-10 | 40160 | 70 | 26 | 27 | 18 | 36 | 10 | 3 | 14 | 1 | 32 | 18 | 43 | 15 | 1 | 3 | 1 | 2 | 7 | 0 | 3 | 14 | 11 | 2 | 1 | 4 | 1 | 1 | 12 | 7 | 40543 |
2020-02-11 | 42638 | 135 | 26 | 28 | 18 | 42 | 10 | 3 | 15 | 1 | 33 | 18 | 45 | 15 | 1 | 3 | 1 | 2 | 8 | 0 | 3 | 14 | 11 | 2 | 1 | 8 | 1 | 1 | 13 | 7 | 43103 |
2020-02-12 | 44653 | 174 | 29 | 28 | 18 | 49 | 10 | 3 | 15 | 1 | 33 | 18 | 47 | 15 | 1 | 3 | 1 | 2 | 8 | 0 | 3 | 16 | 11 | 2 | 1 | 8 | 1 | 1 | 13 | 7 | 45171 |
2020-02-13 | 58761 | 218 | 33 | 28 | 18 | 50 | 10 | 3 | 16 | 1 | 33 | 18 | 50 | 15 | 1 | 3 | 1 | 2 | 8 | 0 | 3 | 16 | 11 | 2 | 1 | 9 | 1 | 1 | 14 | 7 | 59334 |
2020-02-14 | 63851 | 218 | 41 | 28 | 18 | 53 | 10 | 3 | 16 | 1 | 33 | 19 | 58 | 15 | 1 | 3 | 1 | 2 | 8 | 0 | 3 | 16 | 11 | 2 | 1 | 9 | 1 | 1 | 15 | 7 | 64445 |
2020-02-15 | 66491 | 285 | 53 | 28 | 18 | 56 | 10 | 3 | 16 | 1 | 34 | 21 | 67 | 15 | 1 | 3 | 1 | 2 | 8 | 1 | 3 | 16 | 11 | 2 | 1 | 9 | 1 | 1 | 15 | 7 | 67180 |
2020-02-16 | 68500 | 355 | 59 | 29 | 18 | 56 | 10 | 3 | 16 | 1 | 34 | 22 | 72 | 15 | 1 | 3 | 1 | 2 | 8 | 1 | 3 | 16 | 12 | 2 | 1 | 9 | 1 | 1 | 15 | 7 | 69273 |
2020-02-17 | 70548 | 355 | 59 | 29 | 20 | 57 | 10 | 3 | 16 | 1 | 34 | 22 | 72 | 15 | 1 | 3 | 1 | 2 | 8 | 1 | 3 | 16 | 12 | 2 | 1 | 9 | 1 | 1 | 15 | 7 | 71324 |
気づいたこと
ターニングポイントの検知のため、SDARというモデルを使って、二段階学習させたのですが、データ数が少ないせいか、思うような結果は得られませんでした。 このまま鎮静化することを望んでいますが、感染者がさらに増加してしまった場合、もう一度、トライします。
まとめ
みんなで感染拡大を抑えて、TOKYO2020を迎えましょう!
まずは手洗いが大切です。外出先からの帰宅時や調理の前後、食事前などに こまめに石けんやアルコール消毒液などで手を洗いましょう。
咳などの症状がある方は、咳やくしゃみを手で押さえると、その手で触った ものにウイルスが付着し、ドアノブなどを介して他の方に病気をうつす可能 性がありますので、咳エチケットを行ってください。
持病がある方、ご高齢の方は、できるだけ人混みの多い場所を避けるなど、 より一層注意してください。