3Dサーフェスプロット Plotly

3Dサーフェスプロット

PythonPlotlyを使用してインタラクティブな3Dグラフを描く例を示します。

以下の例では、3Dサーフェスプロットを作成します。

Plotlyはインタラクティブなグラフを生成するための強力なライブラリです。

まず、Plotlyをインストールします。

1
pip install plotly

次に、以下のPythonコードを使用して3Dサーフェスプロットを描きます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import plotly.graph_objects as go
import numpy as np

# データを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))

# 3Dサーフェスプロットを作成
fig = go.Figure(data=[go.Surface(z=z, x=x, y=y)])

# グラフのレイアウトを設定
fig.update_layout(
scene=dict(
xaxis_title='X軸',
yaxis_title='Y軸',
zaxis_title='Z軸',
),
title='3D Surface Plot',
)

# グラフを表示
fig.show()

このコードは、plotly.graph_objectsを使用して3Dサーフェスプロットを作成し、X軸、Y軸、Z軸にラベルを付け、タイトルを設定しています。

最後に、fig.show()でグラフを表示します。

これにより、インタラクティブな3Dグラフが表示され、ズームイン回転などの操作が可能になります。

この例は非常に基本的なものですが、Plotlyを使用してさまざまなカスタマイズインタラクティブな機能を持つ3Dグラフを描くことができます。

データや外観を調整して、特定の要件に合わせてグラフを作成できます。

ソースコード解説

以下はソースコードの詳細な説明です。

  1. plotly.graph_objectsおよびnumpyモジュールをインポートします。
    これらのモジュールは、3Dグラフの作成と数学的な計算に使用されます。

  2. 3次元プロットのデータを生成します。
    xyは-5から5までの範囲で均等に分布した100個の点から成る格子点を生成します。
    meshgrid関数は、xおよびyの格子点の行列を生成します。
    zは、xyを使用して計算されたsin(np.sqrt(x**2 + y**2))の値から成り立ちます。
    これにより、zは3Dサーフェスプロットの高さを表す値の行列になります。

  3. go.Figureを使用して3DサーフェスプロットのFigureオブジェクトを作成します。
    このFigureにはdata引数があり、サーフェスプロットのデータが含まれています。
    go.Surfaceを使用して、z値をzx軸の値をxy軸の値をyとしてプロットのデータを設定します。

  4. fig.update_layoutを使用して、グラフの外観とレイアウトを設定します。
    scene内でxaxis_titleyaxis_title、およびzaxis_titleを設定して、各軸に対するラベルを指定します。
    また、グラフ全体のタイトルもtitleを使用して設定します。

  5. 最後に、fig.show()を呼び出して、作成した3Dサーフェスプロットを表示します。
    これにより、インタラクティブなグラフが表示され、ユーザーはズームイン、回転、アニメーションなどの操作を行うことができます。

このコードは、3Dグラフの基本的な作成方法を示しており、numpyを使用して数学的な計算を行い、Plotlyを使用してグラフを描画およびカスタマイズする方法を示しています。