Plotly - 3D точечный график и график поверхности
В этой главе будет представлена информация о трехмерном (3D) графике рассеяния и трехмерном графике поверхности и о том, как их создать с помощью Plotly.
Точечная диаграмма 3D
Трехмерный (3D) график рассеяния похож на график рассеяния, но с тремя переменными: x, y, and z or f(x, y)настоящие числа. График можно представить в виде точек в трехмерной декартовой системе координат. Обычно он рисуется на двухмерной странице или экране с использованием методов перспективы (изометрической или перспективной), так что кажется, что одно из измерений выходит за пределы страницы.
Трехмерные точечные диаграммы используются для построения точек данных по трем осям в попытке показать взаимосвязь между тремя переменными. Каждая строка в таблице данных представлена маркером, положение которого зависит от его значений в столбцах, установленных наX, Y, and Z axes.
Четвертая переменная может быть установлена для соответствия color или же size из markers, таким образом, добавляя еще одно измерение к сюжету. Связь между разными переменными называетсяcorrelation.
А Scatter3D trace- объект графика, возвращаемый функцией go.Scatter3D (). Обязательными аргументами этой функции являются x,y and z каждый из них list or array object.
Например -
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-график поверхности
Графики поверхности - это диаграммы трехмерных данных. На графике поверхности каждая точка определяется тремя точками:latitude, longitude, и altitude(X, Y и Z). Вместо того, чтобы отображать отдельные точки данных, графики поверхности показывают функциональную взаимосвязь между назначеннымиdependent variable (Y), и две независимые переменные (X и Z). Этот сюжет является сопутствующим сюжетом контурного сюжета.
Вот сценарий Python для визуализации простого поверхностного графика, где y array транспонируется от x, а z вычисляется как 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)
Ниже приведен вывод кода, который объяснен выше -