Covid-19のダッシュボードの作成を例にしています。イメージとしては、表形式でデータが見えるようにして、時系列で合計値がチャートして見えるようにして、カレンダーヒートマップで曜日ごとの動きが見えるようにするというのを考えてみます。仮説としては人の動きに感染者は依存しているのではないかと言う仮説です。だとすれば、曜日ごとに特徴があるのではないかと言う仮説です。

流れとしては、以下のような順番になります。

  1. プロジェクトの作成
  2. データのインポート
  3. クエリとビジュアリゼーションコンポーネントの配置

クエリとビジュアリゼーションコンポーネントの配置は主にMarkdownのドキュメントで行います。

プロジェクトの作成

まず、プロジェクトを作成するところから始めます。プロジェクトの作成はVisual Studio Codeから作成します。

プロジェクトの作成(1/5)

height:400

プロジェクトの作成(2/5)

height:400

プロジェクトの作成(3/5)

height:400

プロジェクトの作成(4/5)

height:400

プロジェクトの作成(5/5)

height:400

Evidenceのウェルカム画面

プロジェクトを作成すると、Evidenceのサーバを起動可能になります。Evidenceのサーバを起動すると通常はポート1313で待ち受け状態になります。そうすると、Webブラウザで開けるようになります。ウェルカム画面は以下のようになります。

height:400

Evidenceサーバの起動

Evidenceサーバの起動はVisual Studio Codeから行います。コマンドパレットから起動できます。

height:400

データのインポート

https://www.mhlw.go.jp/stf/covid-19/open-data.html から取得した、新規陽性者数の推移(日別)のデータをプロジェクトフォルダのsourcesにcovid19というディレクトリを作成して 配置します。新規陽性者数の推移(日別)のデータはnewly_confirmed_cases_daily.csvというファイル名なので、newly_confirmed_cases_dailyというテーブルとして識別されます。 データのインポートはEvidenceのサーバからやると、設定ファイルなどを簡単に作成できます。

データのインポート

データのインポート (1/4)

Evidenceのサーバのインポート画面ではインポート可能なデータ形式の確認ができます。 Evidenceでインポート可能なデータについてはEvidenceのWeb画面を起動したときのSettingsの中の画面で確認できる。

height:400

データのインポート (2/4)

height:400

データのインポート (3/4)

height:400

データのインポート (4/4)

height:400

現在Evidenceでインポート可能なもの

  • BigQuery
  • CSV
  • Databricks
  • DuckDB
  • Microsoft SQL Server
  • PostgreSQL
  • Redshift
  • JavaScript
  • Snowflake
  • SQLite
  • Trino
  • MotherDuck

最初のコンテンツの作成

最初のコンテンツの作成 (1/2)

次に、プロジェクトフォルダのpages/index.mdを編集します。index.mdはEvidenceのサーバに接続してデフォルトで表示されるページになります。ここのコンテンツを以下のようにします。


    ---
    title: Welcome to Evidence
    ---

    ## Covid19 のCSV確認

    ```sql covid19_10
        select *
        from covid19.newly_confirmed_cases_daily
        limit 10
    ```

    <DataTable data={covid19_10}/>

最初のコンテンツの作成 (2/2)

これにより、covid19.newly_confirmed_cases_dailyから10行取り出して表として出力されます。

以下のような表示になります。

height:400

時系列グラフの作成 (1/2)

さらに、時系列チャートを作成します。Visual Studio Codeからchart.mdを作成します。 Evidenceではpages以下に作成されたコンテンツは自動的にナビゲーションに配置されます。 コンテンツは以下のようなものになるでしょう。時系列グラフはデータの日付を横軸として、縦軸は新規感染者の合計とします。

    ---
    title: 時系列チャート
    ---

    ```sql covid19
        select *
        from covid19.newly_confirmed_cases_daily
    ```

    <LineChart 
        data={covid19}
        x=Date
        y=ALL
    />

時系列グラフの作成 (2/2)

height:400

カレンダーヒートマップの追加

カレンダーヒートマップの追加 (1/3)

さらに、カレンダーヒートマップを作成します。Visual Studio Codeからcheatmap.mdを作成します。カレンダーヒートマップは横軸に時間、縦軸は曜日でヒートマップとして新規感染者の数になります。Evidenceのカレンダーヒートマップは曜日情報を与える必要はなく、日付データを与えれば曜日に分解されます。 コンテンツは以下のようなものになるでしょう。

カレンダーヒートマップの追加 (2/3)

    ---
    title: カレンダーヒートマップ
    ---

    ```sql covid19
        select *
        from covid19.newly_confirmed_cases_daily
    ```

    <CalendarHeatmap 
        data={covid19}
        date=Date
        value=ALL
        yearLabel=false
    /> 

カレンダーヒートマップの追加 (3/3)

height:400

次回はここから進めて、更に拡張していくことを考えます。