BigQuery でクエリ結果をグラフ表示できるようになりました(Preview)

2023.08.27

こんにちは!エノカワです。

BigQuery でクエリ結果をグラフ表示する機能プレビュー となりました。

After you run a query in the query editor, in the Chart tab, you can see the visualization of your query results.

クエリ結果を直接ビジュアライズできるみたいです!
さっそく使ってみましたので、その内容をご紹介します。

グラフを表示

一般公開データセットのcovid19_open_dataのクエリ結果で試してみます。

日本('JP')のCovid-19データから、2021年1月から12月までの日ごとの新規感染者数と新規死亡者数を集計するクエリを実行します。 BigQuery コンソールのエディタ画面に下記のクエリを入力します。

SELECT
  date, -- 日付
  DATE_TRUNC(date, MONTH) AS month, -- 月
  SUM(new_confirmed) AS daily_new_cases, -- 日付ごとの新規感染者数の合計
  SUM(new_deceased) AS daily_new_deaths -- 日付ごとの新規死亡者数の合計
FROM
  `bigquery-public-data.covid19_open_data.covid19_open_data`
WHERE
  country_code = 'JP'
  AND subregion1_code IS NOT NULL
  AND date BETWEEN '2021-01-01' AND '2021-12-31'
GROUP BY
  date
ORDER BY
  date;

[実行]をクリックして、クエリ結果を表示します。

クエリ結果のタブに[グラフ]が追加されています!

[グラフ]をクリックすると、クエリ結果がグラフ表示されました。
X 軸がdate、Y 軸がdaily_new_casesdaily_new_deathsの線グラフになっているようです。

グラフ領域にポインタを移動させると、ポイントされている箇所の値が表示されます。

グラフを拡大

グラフの解像度を変更することができます。

特定の期間を拡大

グラフ領域で詳細に表示する期間の一方の終端にポインタを置き、期間のもう一方の終端までポインタを水平方向にドラッグします。

ポインタボタンを離すと、選択した X 軸の範囲を使用してグラフが再描画されました。
Y 軸の範囲は、選択した期間の値に基づいて自動的に調整されています。

値の間隔を拡大

グラフ領域で詳細に表示する値範囲の一方の終端にポインタを置き、もう一方の終端までポインタを垂直方向にドラッグします。

ポインタボタンを離すと、選択した Y 軸の範囲を使用してグラフが再描画されました。

拡大をリセットする

グラフを元の状態に戻すには、グラフ領域の右上にある[ズームをリセット]をクリックします。

拡大したグラフ領域がリセットされました。

グラフの凡例

グラフ領域の右上の[グラフの凡例を開く]をクリックすると、グラフ領域の下部に凡例が表示されます。

凡例のチェックボックスをONにすると、ONにした凡例がハイライト(強調)表示されました。
凡例が複数あり重なって見づらい場合に活用できそうな機能ですね。

グラフを PNG ファイルとしてダウンロード

グラフ領域の右上の[その他のグラフオプション]-[ダウンロード]-[Download PNG]をクリックすると、グラフを PNG ファイルとしてダウンロードすることができます。

グラフを表示.pngというファイル名でダウンロードされまた。
以下の画像はダウンロードしたPNGファイルです。

チャートの構成

グラフ領域の右側[チャート構成]ペインでは、グラフの種類を変更し、メジャーとディメンジョンを構成できます。

グラフの種類

グラフの種類は折れ線またはを選択できます。

プルダウンからに切り替えてみましょう。

棒グラフに切り替わりました。
ディメンジョンとメジャーは変わっていません。
Y 軸の値の範囲も変わっていませんね。

Y 軸はdaily_new_casesdaily_new_deathsの2つですが、2軸の棒グラフではなく積み上げ棒グラフになっているようです。

メジャー(Y 軸)の構成

メジャー(Y 軸)を変更してみましょう。

daily_new_deathsのチェックボックスのみONにして、[OK]をクリックします。

グラフが再描画されました。
Y 軸の値の範囲も変わっていますね。

今度はdaily_new_casesのチェックボックスのみONにして、[OK]をクリックします。

グラフが再描画され、Y 軸の値の範囲も変わりました。

ディメンジョン(X 軸)の構成

ディメンジョン(X 軸)を変更してみましょう。

プルダウンからmonthを選択します。

X 軸の値が重複するデータポイントはグラフから除外される

グラフ領域の上部に警告メッセージが表示されました。

選択したディメンションには重複した値が含まれています。X 軸の値が重複するデータポイントはグラフから除外されました。

monthdateから月を取り出した値ですので、同じ月dateから取り出したmonthは同じ値となります。
そのような値をディメンジョンに選択すると、X 軸の値が重複するデータポイントはグラフから除外されるようです。

月ごとに値の集計するためには、クエリを変更する必要があります。

先ほどのクエリをmonthで集計するように変更して実行します。

SELECT
  DATE_TRUNC(date, MONTH) AS month,
  SUM(new_confirmed) AS daily_new_cases,
  SUM(new_deceased) AS daily_new_deaths
FROM
  `bigquery-public-data.covid19_open_data.covid19_open_data`
WHERE
  country_code = 'JP'
  AND subregion1_code IS NOT NULL
  AND date BETWEEN '2021-01-01' AND '2021-12-31'
GROUP BY
  month
ORDER BY
  month;

クエリ結果が月ごとに集計された結果になっています。
[グラフ]をクリックします。

警告メッセージが消え、X 軸がmonth、Y 軸がdaily_new_casesの棒グラフが表示されました。

Y 軸の値が NULL のデータポイントはグラフから除外される

2021年1月から12月までの期間指定を無効にしてクエリを実行します。

SELECT
  DATE_TRUNC(date, MONTH) AS month,
  SUM(new_confirmed) AS daily_new_cases,
  SUM(new_deceased) AS daily_new_deaths
FROM
  `bigquery-public-data.covid19_open_data.covid19_open_data`
WHERE
  country_code = 'JP'
  AND subregion1_code IS NOT NULL
  -- AND date BETWEEN '2021-01-01' AND '2021-12-31'
GROUP BY
  month
ORDER BY
  month;

2020年1月のdaily_new_casesdaily_new_deathsnullになっています。

[グラフ]をクリックします。

下記の警告メッセージが表示されました。

選択したメジャーには NULL 値が含まれています。Y 軸の値が NULL のデータポイントはグラフから除外されました。

期間の開始は2020年5月10日からになっていました。
2020年1月はdaily_new_casesdaily_new_deathsnullになっていたのでグラフから除外されたようです。

まとめ

以上、BigQuery でクエリ結果をグラフ表示する機能を使ってみました。

クエリの結果からダイレクトに視覚化できるので、日頃データ分析を行うユーザーにとっては嬉しい機能ではないでしょうか。
提供されている機能はシンプルで使いやすく、グラフ結果の視覚化を直感的に行うことができました。

現時点(2023年8月時点)では、グラフの種類は折れ線と棒の2つなので視覚化のバリエーションは限られています。
今後のアップデートでさらに多彩な視覚化オプションが追加されることを期待しています!

参考