東京都におけるコロナウイルス感染者数推移をグラフ化、都道府県毎の累計感染者数を表示してみた。

閲覧ありがとうございます。

#やったこと
コロナウイルスの感染者情報が載っているJsonファイルにアクセスし、東京都の感染者の推移をグラフ化、都道府県毎の累計感染者数を表示してみました。

1. JavaScriptのfetchメソッドを使ってネット上のJsonファイルにアクセス
2. 取得したJsonファイルを修正
3. グラフの表示
4. 日本地図の表示

![東京都の感染者数](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/2ca09a84-ee05-6a90-b71a-255b93a57930.png)

![各都道府県別の感染者数](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/d3ffe1ef-e126-573f-9342-b7eac96c1beb.png)
都道府県をクリックすると、感染者数が出るようになっております。

#使ったJsonファイル
[東京の感染者情報](https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json)
[各都道府県の感染者情報](https://app.sabae.cc/api/covid19japan.json)

#使った言語
JavaScript
JQuery

#詰まったこと
##fetchメソッドで取得した値がchart.jsに上手く反映されない
fetchメソッドで欲しい値は取得したのですが、最初の画面ロード時にchart.jsに反映されませんでした。
なぜか、オプション+コマンド+iを押して検証モードにすると、グラフが上手く表示されるというエラーに出会いました、、、
どうやらfetchメソッドの中にchart.jsでグラフ表示をする処理を書かなければならなかったようです。
[How To Make A Chart Using Fetch & REST API's](https://blog.zingchart.com/how-to-make-a-chart-using-fetch-rest-apis/)

###不正解
```JavaScript
    // fetchでJsonファイル取得
    fetch(urlNation)
    .then(function(response) {
        return response.json();
    })
    .then(function(myJson) {                                      
        for(var i = 0; i < myJson.patients_summary.data.length; i++){
            total += myJson.patients_summary.data[i].小計;
            let numPerDay = myJson.patients_summary.data[i].日付.substr(0,10);
            inDate.push(numPerDay);
            inNumber.push(total);
            console.log(myJson.patients_summary.data[i].日付);
        }
        return false;
    });

    // chart.jsでグラフ表示
    var myBarChart = new Chart(ctx, {
      type: 'bar',
      data: {
        labels: inDate,
        datasets: [
          {
            label: 'Infexted Patients',
            data: inNumber,
            backgroundColor: "rgba(21,255,0,0.8)"
          }
        ]
      },
      options: {
        title: {
          display: true,
          text: 'Coronavirus Cases'
        },
        scales: {
          yAxes: [{
            ticks: {
              suggestedMax: 1500,
              suggestedMin: 0,
              stepSize: 100,
              callback: function(value, index, values){
                return  value
              }
            }
          }]
        },
      }
    });
```

###正解
```JavaScript
    fetch(urlNation)
    .then(function(response) {
        return response.json();
    })
    .then(function(myJson) {                                      
        for(var i = 0; i < myJson.patients_summary.data.length; i++){
            total += myJson.patients_summary.data[i].小計;
            let numPerDay = myJson.patients_summary.data[i].日付.substr(0,10);
            inDate.push(numPerDay);
            inNumber.push(total);
            console.log(myJson.patients_summary.data[i].日付);
        }
        var myBarChart = new Chart(ctx, {
          type: 'bar',
          data: {
            labels: inDate,
            datasets: [
              {
                label: 'Infexted Patients',
                data: inNumber,
                backgroundColor: "rgba(21,255,0,0.8)"
              }
            ]
          },
          options: {
            title: {
              display: true,
              text: 'Coronavirus Cases'
            },
            scales: {
              yAxes: [{
                ticks: {
                  suggestedMax: 1500,
                  suggestedMin: 0,
                  stepSize: 100,
                  callback: function(value, index, values){
                    return  value
                  }
                }
              }]
            },
          }
        });
        return false;
    });
```

#まとめ
実際に自分で作ってみて、感染者が指数関数的に増えていて、驚いています。
手洗いうがい、十分な睡眠と栄養摂取をして、対策をしましょう！

#追記
感染者数に応じて色分けができるようになりました。（2020/04/07）
![感染者数毎に色分け](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/aba056c2-ee2f-5a90-00dd-6fbb5ae5e0e0.png)