Plotly-3d-scatter-and-surface-plot

提供:Dev Guides
移動先:案内検索

Plotly-3D散布図と表面プロット

この章では、3次元(3D)散布図と3D表面図、およびPlotlyを使用してそれらを作成する方法について説明します。

3D散布図

3次元(3D)散布図は散布図に似ていますが、* x、y、zの3つの変数、またはf(x、y)*が実数です。 グラフは、3次元デカルト座標系の点として表すことができます。 これは通常、遠近法(等角投影または遠近法)を使用して2次元のページまたは画面に描画されるため、いずれかの次元がページから出ているように見えます。

3D散布図は、3つの変数間の関係を示すために、3つの軸にデータポイントをプロットするために使用されます。 データテーブルの各行はマーカーで表され、その位置は* X、Y、Z軸*に設定された列の値に依存します。

4番目の変数は、*マーカー*の*色*または*サイズ*に対応するように設定できるため、プロットにさらに別の次元を追加できます。 異なる変数間の関係は、*相関*と呼ばれます。

  • Scatter3Dトレース*は、go.Scatter3D()関数によって返されるグラフオブジェクトです。 この関数の必須の引数はx、 y、z です。これらはそれぞれ*リストまたは配列オブジェクト*です。

たとえば-

import plotly.graph_objs as go
import numpy as np
z = np.linspace(0, 10, 50)
x = np.cos(z)
y = np.sin(z)
trace = go.Scatter3d(
   x = x, y = y, z = z,mode = 'markers', marker = dict(
      size = 12,
      color = z, # set color to an array/list of desired values
      colorscale = 'Viridis'
      )
   )
layout = go.Layout(title = '3D Scatter plot')
fig = go.Figure(data = [trace], layout = layout)
iplot(fig)

コードの出力は以下のとおりです-

3D散布図

3D表面プロット

表面プロットは、3次元データの図です。 表面プロットでは、各ポイントはその3つのポイントによって定義されます:緯度経度高度(X、Y、Z)。 個別のデータポイントを表示するのではなく、表面プロットは指定された*従属変数(Y)*と2つの独立変数(XおよびZ)の間の関数関係を示します。 このプロットは、コンタープロットのコンパニオンプロットです。

ここでは、* y配列*がxの転置で、zがcos(x2 + y2)として計算される単純な表面プロットをレンダリングするPythonスクリプトです

import numpy as np
x = np.outer(np.linspace(-2, 2, 30), np.ones(30))
y = x.copy().T # transpose
z = np.cos(x * *2 + y* * 2)
trace = go.Surface(x = x, y = y, z =z )
data = [trace]
layout = go.Layout(title = '3D Surface plot')
fig = go.Figure(data = data)
iplot(fig)

以下は、上記で説明したコードの出力です-

3D表面プロット