1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Altairで宣言的可視化:コードをシンプルに 〜Google Colabハンズオン〜

Posted at

本記事では、Pythonの可視化ライブラリ「Altair」を用いて、宣言的にインタラクティブなグラフを作る方法を紹介します。特に、手元の環境に依存せず、Google Colab上で簡単に試せるハンズオン形式で進めていきます。


Altairとは

  • Vega/Vega-Liteをバックエンドとしており、Python上で宣言的にグラフを作成できるライブラリ。
  • インタラクティブな機能(範囲選択、マウスオーバーなど)をシンプルな記述で追加可能。
  • 「どの軸に何を割り当てるか」を書くと、細かい描画はAltairが自動でやってくれるため、コードがスッキリしやすい。

image.png


事前準備(Google Colab上での開発環境)

1. Google Colabを開く

  1. Google Colabにアクセスします。
  2. 新規ノートブックを作成します。

2. ライブラリのインストール

  • Altairは通常、Colabにプリインストールされていますが、念のため下記コマンドでバージョン確認・インストールを行うと安心です。
!pip install altair==4.2.2  # 例として特定バージョンを指定
  • 他に必要であれば、pandasなどもインストール・アップグレードしておきます。
!pip install pandas --upgrade

3. Altair表示設定

  • ColabでAltairを表示する場合、colab向けのレンダラーを有効化する方法がおすすめです。
import altair as alt

alt.renderers.enable('colab')
  • これで、インタラクティブグラフがColab上に直接表示されるようになります。

ハンズオン1:シンプルな折れ線グラフ

データ準備

まずはサンプル用に小さなデータセットを作成します。

import pandas as pd

data = pd.DataFrame({
    'x': range(10),
    'y': [val**2 for val in range(10)],
    'category': ['A']*5 + ['B']*5
})
data
  • xは0〜9
  • yxの二乗
  • categoryは前半がA、後半がB

image.png

Altairで可視化

上記データを使い、Altairで**「宣言的」**に折れ線グラフを作ってみましょう。

import altair as alt

chart = alt.Chart(data).mark_line().encode(
    x='x',
    y='y',
    color='category'
)

chart
  • alt.Chart(data)でデータを受け取り、.mark_line()で線グラフを指定。
  • .encode(...)で軸と色分けを宣言的に設定します。
  • 実行すると、AとBの2種類の線が描かれた折れ線グラフが、Google Colab上で直接表示されます。

image.png


ハンズオン2:インタラクティブな範囲選択

Altairの強みは、インタラクション機能を簡単に追加できることです。ここでは、「ドラッグで範囲を選択 -> 選択範囲のみ別グラフに反映」という例を体験します。

データ準備

少しデータポイントを増やしたものを用意します。

import pandas as pd

data2 = pd.DataFrame({
    'x': range(50),
    'y': [val**1.5 for val in range(50)]
})

範囲選択用のオブジェクト作成

brush = alt.selection(type='interval')
  • type='interval'とすることで、ドラッグ操作による範囲指定を可能にします。

グラフの作成

# 上段グラフ(範囲選択ができる)
upper_chart = alt.Chart(data2).mark_line().encode(
    x='x',
    y='y'
).add_selection(
    brush  # このグラフでドラッグによる範囲選択を可能に
)

# 下段グラフ(選択範囲のみ表示)
lower_chart = alt.Chart(data2).mark_line().encode(
    x='x',
    y='y'
).transform_filter(
    brush  # 上段グラフの選択範囲のみ可視化
)

# 上下グラフを縦に並べる
interactive_charts = upper_chart & lower_chart
interactive_charts
  • brushを上段グラフに追加(.add_selection(brush))することで、範囲のドラッグ操作を有効化。
  • 下段グラフで.transform_filter(brush)とすることで、「上段グラフのドラッグ操作で指定された範囲」だけが表示されるようになります。

image.png

実際に動かしてみる

  1. 上段グラフ上でマウスをドラッグしてみてください。選択範囲がハイライトされます。
  2. すると、下段グラフにその範囲のデータだけがズーム表示されます。
  3. インタラクションを何度でもやり直せます。

これが、Altairのインタラクティブな可視化の典型的な例です。


「宣言的」可視化のメリット

  • コードがシンプル
    X軸、Y軸、色分け、インタラクションなどを単純に「宣言」するだけで可視化が可能です。

  • 可読性が高い
    視覚化したいデータと、その軸やスタイルが一目で分かるため、チーム開発や他者との共有もしやすいです。

  • 拡張しやすい
    インタラクションの種類(範囲選択・クリック選択など)を増やしても、コードの変更が少なくて済みます。

  • バックエンド(Vega/Vega-Lite)の恩恵
    Web標準のVega/Vega-Liteを利用しているため、描画パフォーマンスや表現力が高く、HTMLベースでの共有が容易です。


まとめ

  • Altairを使うことで、宣言的に可視化を行い、インタラクティブなグラフをシンプルなコードで実装できます。
  • Google Colabなら、環境構築の手間が少なく、誰でもすぐに試すことが可能です。
  • ぜひ実際に上記サンプルコードをコピー&ペーストして動かしてみて、Altairの楽しさ・使いやすさを体感してください。

image.png


参考リンク

以上、Google Colabを利用したハンズオン形式でのAltair可視化チュートリアルでした。今後は応用例として、クリック選択でデータをハイライトしたり、複数のチャートを組み合わせるなど、さまざまな可視化に挑戦してみてください。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?