1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Colabで始める!Pythonの3D描画入門

Posted at

はじめに

こんにちは!今回は、Google Colabを使ってPythonで3D描画を楽しんでみましょう。環境構築不要ですぐに始められます!✨

napkin-selection (2).png

なぜ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プロットが表示されます!
カラフルな点が空間に浮かんでいる様子が見えるはずです。

image.png

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()

image.png

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()

image.png

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()

image.png

まとめ

napkin-selection (3).png

いかがでしたか?Google Colabを使えば、環境構築に悩むことなく3D可視化を楽しめます!

今回紹介したPlotlyには、他にもたくさんの機能があります:

  • 様々な3Dグラフタイプ(等高線、ワイヤーフレームなど)
  • アニメーション機能
  • インタラクティブな操作
  • データのホバー表示

おわりに

3D可視化は、データを新しい視点で見るのに役立ちます。このチュートリアルを通じて、皆さんの分析の幅が広がれば嬉しいです!

参考リンク

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?