Plotlyは、Pythonでインタラクティブなデータビジュアライゼーションを作成するための強力なライブラリです。豊富なグラフタイプやカスタマイズオプションを提供し、Webブラウザ上で動的にデータを探索できるビジュアルを簡単に作成できます。以下に、Plotlyの特徴と実用例を説明します。
Plotlyの特徴
インタラクティブなグラフ
Plotlyはインタラクティブなグラフを作成でき、ユーザーはズームイン、パン、ホバー情報などの操作が可能です。
多様なグラフタイプ
折れ線グラフ、散布図、ヒートマップ、3Dグラフ、地理空間グラフなど、多様なグラフタイプをサポートしています。
高いカスタマイズ性
グラフの色、ラベル、レイアウト、アノテーションなど、細部までカスタマイズできます。
統合性
Jupyter Notebook、Dash、Streamlitなど、さまざまな環境での統合が容易です。
共有とエクスポート
グラフをWebブラウザで表示するだけでなく、静的な画像としてエクスポートしたり、Plotlyのオンラインプラットフォームで共有したりできます。
例題1: シンプルな折れ線グラフの作成
まず、Plotlyを使用してシンプルな折れ線グラフを作成する方法を示します。
import plotly.graph_objects as go
# データの作成
x = [1, 2, 3, 4, 5]
y = [10, 11, 12, 13, 14]
# 折れ線グラフの作成
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines', name='データ1'))
fig.update_layout(title='シンプルな折れ線グラフ', xaxis_title='X軸', yaxis_title='Y軸')
# グラフの表示
fig.show()
結果
このコードでは、Plotlyを使用してシンプルな折れ線グラフを作成しています。go.Figure
を使用してグラフオブジェクトを作成し、go.Scatter
を使用して折れ線グラフのデータを指定します。
例題2: インタラクティブな散布図の作成
次に、インタラクティブな散布図を作成する方法を示します。
import plotly.express as px
# データの作成
df = px.data.iris()
# 散布図の作成
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species', size='petal_length', hover_data=['petal_width'])
fig.update_layout(title='Irisデータセットの散布図', xaxis_title='萼片の幅', yaxis_title='萼片の長さ')
# グラフの表示
fig.show()
このコードでは、Plotly Expressを使用してIrisデータセットの散布図を作成しています。px.scatter
を使用して散布図を作成し、色やサイズ、ホバーデータを指定しています。
例題3: 3D散布図の作成
次に、3D散布図を作成する方法を示します。
import plotly.express as px
# データの作成
df = px.data.iris()
# 3D散布図の作成
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_length', color='species')
fig.update_layout(title='Irisデータセットの3D散布図')
# グラフの表示
fig.show()
結果
マウスでグリグリ動かせます
このコードでは、Plotly Expressを使用してIrisデータセットの3D散布図を作成しています。px.scatter_3d
を使用して3D散布図を作成し、色を指定しています。
例題4: ヒートマップの作成
次に、ヒートマップを作成する方法を示します。
import plotly.graph_objects as go
import numpy as np
# データの作成
z = np.random.rand(10, 10)
# ヒートマップの作成
fig = go.Figure(data=go.Heatmap(z=z))
fig.update_layout(title='ランダムデータのヒートマップ', xaxis_title='X軸', yaxis_title='Y軸')
# グラフの表示
fig.show()
結果
このコードでは、Plotlyを使用してランダムデータのヒートマップを作成しています。go.Heatmap
を使用してヒートマップのデータを指定します。
例題5: 地理空間データの可視化
最後に、地理空間データを可視化する方法を示します。
import plotly.express as px
# データの作成
df = px.data.gapminder().query("year == 2007")
# 地理空間データの可視化
fig = px.scatter_geo(df, locations="iso_alpha", color="continent",
hover_name="country", size="pop",
projection="natural earth", title='2007年の世界人口分布')
fig.update_layout(legend_title_text='大陸')
# グラフの表示
fig.show()
結果
このコードでは、Plotly Expressを使用して2007年の世界人口分布を可視化しています。px.scatter_geo
を使用して地理空間データを指定し、色、サイズ、ホバーデータを設定しています。
結論
Plotlyは、Pythonでインタラクティブなデータビジュアライゼーションを作成するための強力なライブラリです。シンプルな折れ線グラフから複雑な3Dグラフや地理空間データの可視化まで、多様なグラフタイプをサポートしています。インタラクティブな機能と高いカスタマイズ性により、データの洞察を深めるための強力なツールとなります。Plotlyを活用することで、データの視覚化と分析が効果的に行え、研究や開発の成果をより魅力的に伝えることができます。