Plotly - 3D Scatter và Surface Plot

Chương này sẽ cung cấp thông tin về Biểu đồ phân tán ba chiều (3D) và Biểu đồ bề mặt 3D và cách tạo chúng với sự trợ giúp của Plotly.

Lô phân tán 3D

Biểu đồ phân tán ba chiều (3D) giống như biểu đồ phân tán, nhưng có ba biến - x, y, and z or f(x, y)là các số thực. Đồ thị có thể được biểu diễn dưới dạng các chấm trong hệ tọa độ Descartes ba chiều. Nó thường được vẽ trên một trang hoặc màn hình hai chiều bằng cách sử dụng các phương pháp phối cảnh (isometric hoặc phối cảnh), để một trong các kích thước dường như thoát ra khỏi trang.

Biểu đồ phân tán 3D được sử dụng để vẽ các điểm dữ liệu trên ba trục nhằm thể hiện mối quan hệ giữa ba biến. Mỗi hàng trong bảng dữ liệu được đại diện bởi một điểm đánh dấu có vị trí phụ thuộc vào giá trị của nó trong các cột được đặt trênX, Y, and Z axes.

Một biến thứ tư có thể được đặt để tương ứng với color hoặc là size sau đó markers, do đó, thêm một chiều không gian khác vào cốt truyện. Mối quan hệ giữa các biến khác nhau được gọi làcorrelation.

A Scatter3D tracelà một đối tượng đồ thị được trả về bởi hàm go.Scatter3D (). Các đối số bắt buộc cho hàm này là x,y and z mỗi người trong số họ là một list or array object.

Ví dụ -

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)

Đầu ra của mã được đưa ra dưới đây:

Lô bề mặt 3D

Biểu đồ bề mặt là biểu đồ của dữ liệu ba chiều. Trong một biểu đồ bề mặt, mỗi điểm được xác định bởi 3 điểm:latitude, longitudealtitude(X, Y và Z). Thay vì hiển thị các điểm dữ liệu riêng lẻ, các biểu đồ bề mặt hiển thị mối quan hệ chức năng giữa mộtdependent variable (Y)và hai biến độc lập (X và Z). Cốt truyện này là một cốt truyện đồng hành với cốt truyện đường viền.

Đây là một tập lệnh Python để hiển thị sơ đồ bề mặt đơn giản, nơi y array là chuyển vị của x và z được tính bằng 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)

Dưới đây được đề cập là đầu ra của mã được giải thích ở trên -