⛰️

🖱️ インタラクティブな可視化入門:PlotlyとAltairを使ってみよう

に公開

📝 はじめに

Pythonでの可視化といえば matplotlib や seaborn が定番ですが、グラフを動かしたり、マウス操作で拡大・ホバー情報を見せたりといった「インタラクティブなグラフ」を作りたいときは、Plotly や Altair が最適です。

この記事では、これら2つのライブラリを使って、インタラクティブなグラフを作成する方法をやさしく解説します。


  1. インタラクティブ可視化のメリット
  2. Plotlyの基本とグラフ作成
  3. Altairの基本とグラフ作成
  4. Plotly vs Altair:選び方のポイント

1️⃣ インタラクティブ可視化のメリットとは?

特徴 内容
🔍 ホバー 値にマウスを当てると詳細が表示される
📈 ズーム 特定の範囲をドラッグで拡大
🎛️ スライダーやドロップダウン 条件を変えてリアルタイムに表示更新
🌐 Web対応 ブラウザ上でそのまま公開可能

ビジネスダッシュボードやデータ探索にとても便利です。

2️⃣ Plotlyでインタラクティブなグラフを作る

📦 インストール

pip install plotly

📊 折れ線グラフの例

import plotly.express as px
import pandas as pd

df = pd.DataFrame({
    "月": ["1月", "2月", "3月", "4月"],
    "売上": [100, 120, 150, 130]
})

fig = px.line(df, x="月", y="売上", title="月別売上の推移")
fig.show()

🖥️ 実行結果

🖱️ ホバーで数値確認、ズーム、ドラッグが可能になります!

📊 散布図 + ホバー情報

df = px.data.iris()  # アイリスの花データ

fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 hover_data=['petal_width', 'petal_length'])
fig.show()

🖥️ 実行結果

📊 バブルチャート + アニメーション

gapminder = px.data.gapminder()
fig = px.scatter(
    gapminder, x="gdpPercap", y="lifeExp", size="pop", color="continent",
    hover_name="country", log_x=True, size_max=60,
    animation_frame="year", animation_group="country"
)
fig.show()

🖥️ 実行結果

📽️ 年代ごとの推移が再生されるアニメーション付きバブルチャートです!

3️⃣ Altairで宣言的にグラフを作る

📦 インストール

pip install altair vega_datasets

📊 基本の折れ線グラフ

import altair as alt
import pandas as pd

df = pd.DataFrame({
    '月': ["1月", "2月", "3月", "4月"],
    '売上': [100, 120, 150, 130]
})

chart = alt.Chart(df).mark_line(point=True).encode(
    x='月',
    y='売上',
    tooltip=['月', '売上']
).properties(title='月別売上の推移')

chart.show()

🖥️ 実行結果

📊 インタラクティブな選択+ズーム

from vega_datasets import data
source = data.cars()

brush = alt.selection_interval()

chart = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    tooltip=['Name', 'Horsepower', 'Miles_per_Gallon']
).add_selection(brush).properties(title="車の性能と燃費")

chart.show()

🖥️ 実行結果

➡️ 範囲をドラッグして選択できます。

4️⃣ Plotly vs Altair:どっちを使えばいい?

項目 Plotly Altair
柔軟性 ◎ 高い(複雑な可視化もOK) ◯ 宣言的で簡潔だが柔軟性はやや低め
見た目 ◎ 洗練されたデザイン ◯ シンプルで美しい
学習コスト △ やや高め ◎ 初心者向き
Web連携 ◎ Dashなどと組み合わせて強力 ◯ HTML出力は可能

✅ 複雑なダッシュボード → Plotly
✅ シンプルでスマートなグラフ → Altair

🎯 まとめ

Pythonでインタラクティブな可視化を行うには、Plotly と Altair がおすすめです。

ライブラリ 特徴
Plotly 柔軟・高機能。アニメーションやWeb連携に強い
Altair 簡潔・宣言的。データ探索や教育に最適

どちらもJupyter Notebook や Google Colab で使いやすく、データの可視化・共有がスムーズにできます。


株式会社ONE WEDGE

【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
https://onewedge.co.jp/

Discussion