Plotly - dispersão 3D e gráfico de superfície

Este capítulo fornecerá informações sobre o Scatter Plot tridimensional (3D) e o 3D Surface Plot e como fazê-los com a ajuda do Plotly.

Gráfico de dispersão 3D

Um gráfico de dispersão tridimensional (3D) é como um gráfico de dispersão, mas com três variáveis ​​- x, y, and z or f(x, y)são números reais. O gráfico pode ser representado como pontos em um sistema de coordenadas cartesianas tridimensional. Normalmente, é desenhado em uma página ou tela bidimensional usando métodos de perspectiva (isométrica ou perspectiva), de modo que uma das dimensões pareça estar saindo da página.

Os gráficos de dispersão 3D são usados ​​para plotar pontos de dados em três eixos na tentativa de mostrar a relação entre três variáveis. Cada linha na tabela de dados é representada por um marcador cuja posição depende de seus valores nas colunas definidas noX, Y, and Z axes.

Uma quarta variável pode ser definida para corresponder ao color ou size do markers, adicionando assim mais uma dimensão ao enredo. A relação entre diferentes variáveis ​​é chamadacorrelation.

UMA Scatter3D traceé um objeto gráfico retornado pela função go.Scatter3D (). Os argumentos obrigatórios para esta função são x,y and z cada um deles é um list or array object.

Por exemplo -

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)

A saída do código é fornecida abaixo -

Gráfico de superfície 3D

Os gráficos de superfície são diagramas de dados tridimensionais. Em um gráfico de superfície, cada ponto é definido por 3 pontos: seulatitude, longitude, e altitude(X, Y e Z). Em vez de mostrar os pontos de dados individuais, os gráficos de superfície mostram uma relação funcional entre um determinadodependent variable (Y), e duas variáveis ​​independentes (X e Z). Este gráfico é um complemento do gráfico de contorno.

Aqui, está um script Python para renderizar plotagem de superfície simples, onde y array é transposta de x e z é calculada como cos (x2 + y2)

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)

Abaixo mencionado é a saída do código que é explicado acima -