はじめに
こんにちは!今回は、Google Colabを使ってPythonで3D描画を楽しんでみましょう。環境構築不要ですぐに始められます!✨
なぜGoogle Colab?
- ブラウザだけで実行できる
- 環境構築が不要
- 結果を共有しやすい
準備
まずはGoogle Colabでノートブックを開きましょう。基本的なライブラリは既にインストールされていますが、plotlyは明示的にインストールする必要があります:
!pip install plotly
1. 最初の3Dプロット:インタラクティブな散布図
まずは簡単な3D散布図から始めてみましょう:
import plotly.express as px
import numpy as np
# ランダムなデータを生成
n_points = 100
x = np.random.randn(n_points)
y = np.random.randn(n_points)
z = np.random.randn(n_points)
colors = np.random.randn(n_points)
# 3D散布図を作成
fig = px.scatter_3d(x=x, y=y, z=z, color=colors,
title='私の最初の3Dプロット')
fig.show()
このコードを実行すると、マウスでぐりぐり回せる3Dプロットが表示されます!
カラフルな点が空間に浮かんでいる様子が見えるはずです。
2. 楽しい応用例:3Dアート生成
次は、数式を使って美しい3Dアートを作ってみましょう:
import plotly.graph_objects as go
# データ生成
t = np.linspace(0, 10*np.pi, 1000)
x = np.sin(t) * (np.exp(np.cos(t)) - 2*np.cos(4*t) - np.sin(t/12)**5)
y = np.cos(t) * (np.exp(np.cos(t)) - 2*np.cos(4*t) - np.sin(t/12)**5)
z = t
# 3Dラインプロット
fig = go.Figure(data=[go.Scatter3d(
x=x, y=y, z=z,
mode='lines',
line=dict(
color=t,
colorscale='Viridis',
width=5
)
)])
fig.update_layout(
title='数式アート',
scene = dict(
camera=dict(
up=dict(x=0, y=0, z=1),
center=dict(x=0, y=0, z=0),
eye=dict(x=1.5, y=1.5, z=1.5)
)
)
)
fig.show()
3. 実用的な例:地形データの可視化
3D可視化は実用的なデータ分析にも使えます。例えば地形データを可視化してみましょう:
import plotly.graph_objects as go
import numpy as np
# 地形データをシミュレート
size = 100
x = np.linspace(-5, 5, size)
y = np.linspace(-5, 5, size)
X, Y = np.meshgrid(x, y)
# 山っぽい地形を生成
Z = np.sin(np.sqrt(X**2 + Y**2)) * np.exp(-np.sqrt(X**2 + Y**2)/3)
# サーフェスプロット
fig = go.Figure(data=[go.Surface(z=Z, x=X, y=Y)])
fig.update_layout(
title='3D地形マップ',
scene = dict(
xaxis_title='X軸',
yaxis_title='Y軸',
zaxis_title='標高'
)
)
fig.show()
4. インタラクティブな3Dグラフ:株価データの可視化
実際のデータ分析でよく使う、時系列データの3D可視化も試してみましょう:
import plotly.graph_objects as go
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# サンプルデータの生成
dates = pd.date_range(start='2023-01-01', periods=30, freq='D')
prices = np.random.normal(100, 10, 30).cumsum() + 1000
volumes = np.random.normal(1000000, 200000, 30)
# 3D可視化
fig = go.Figure(data=[go.Scatter3d(
x=dates,
y=volumes,
z=prices,
mode='lines+markers',
marker=dict(
size=5,
color=prices,
colorscale='Viridis',
),
line=dict(color='darkblue', width=2)
)])
fig.update_layout(
title='株価と取引量の3D時系列プロット',
scene = dict(
xaxis_title='日付',
yaxis_title='取引量',
zaxis_title='価格'
)
)
fig.show()
まとめ
いかがでしたか?Google Colabを使えば、環境構築に悩むことなく3D可視化を楽しめます!
今回紹介したPlotlyには、他にもたくさんの機能があります:
- 様々な3Dグラフタイプ(等高線、ワイヤーフレームなど)
- アニメーション機能
- インタラクティブな操作
- データのホバー表示
おわりに
3D可視化は、データを新しい視点で見るのに役立ちます。このチュートリアルを通じて、皆さんの分析の幅が広がれば嬉しいです!