okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

Plotly: Empowering Interactive Graphs

Python plotly ライブラリ完全ガイド

Pythonplotly は、インタラクティブで高品質なグラフを作成できる強力なグラフ描画ライブラリです。本記事では、plotly の主な機能と使用例について、コピー機能付きコードブロックとともに紹介します。

1. plotly ライブラリの概要

  • plotly は、動的なグラフやダッシュボードの作成に適しており、Web ブラウザでの表示に対応しています。
  • plotly.express を使えば、少ないコードで美しいグラフが描けます。
  • plotly.graph_objects を使えば、細かいカスタマイズも可能です。

インストール方法

pip install plotly

2. 主な機能と使用例

(1) 線グラフ(Line Chart)

import plotly.express as px

df = px.data.gapminder().query("country == 'Japan'")
fig = px.line(df, x="year", y="gdpPercap", title="GDP per Capita in Japan")
fig.show()

(2) 散布図(Scatter Plot)

import plotly.express as px

df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()

(3) 棒グラフ(Bar Chart)

import plotly.express as px

df = px.data.tips()
fig = px.bar(df, x="day", y="total_bill", color="sex", barmode="group")
fig.show()

(4) 円グラフ(Pie Chart)

import plotly.express as px

df = px.data.tips()
fig = px.pie(df, names="day", values="total_bill", title="Total Bills by Day")
fig.show()

(5) 箱ひげ図(Box Plot)

import plotly.express as px

df = px.data.tips()
fig = px.box(df, x="day", y="total_bill", color="sex")
fig.show()

(6) ヒートマップ(Heatmap)

import plotly.express as px

df = px.data.tips()
fig = px.density_heatmap(df, x="total_bill", y="tip", nbinsx=20, nbinsy=20)
fig.show()

(7) 3D 散布図(3D Scatter)

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(df, x="sepal_length", y="sepal_width", z="petal_length", color="species")
fig.show()

(8) アニメーション付きバブルチャート

import plotly.express as px

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

(9) コレレーションマトリックス(散布行列)

import plotly.express as px

df = px.data.tips()
fig = px.scatter_matrix(df, dimensions=["total_bill", "tip", "size"], color="sex")
fig.show()

(10) カスタム線グラフ(Graph Objects 使用)

import plotly.graph_objects as go
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)
fig = go.Figure(go.Scatter(x=x, y=y, mode="lines", name="sin(x)"))
fig.update_layout(title="Sin Wave", xaxis_title="x", yaxis_title="sin(x)")
fig.show()

3. plotly の主な機能

機能 説明
plotly.express 簡単な構文でグラフを作成できるモジュール
graph_objects 高度なカスタマイズが可能な構造的 API
dash Web アプリケーションとして使えるダッシュボードツール

まとめ

plotly を使えば、視覚的に優れたグラフを短いコードで簡単に作成できます。プレゼン資料やダッシュボード、分析レポートの可視化に非常に役立ちます。ぜひ plotly を使って、データをより魅力的に伝えましょう!