Hướng dẫn python waterfall plot 3d - cốt truyện thác nước python 3d

Trong bài viết này, chúng ta sẽ tìm hiểu cách vẽ nhiều dữ liệu loạt 2D trong một âm mưu 3D duy nhất như hình dưới đây !!

Bước 1: Nhập thư viện bắt buộc (hoặc chỉ một vài đối tượng)

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

Bước 2: Xác định hình và trục

fig = plt.figure()
ax = fig.add_subplot(projection=’3d’)

Bước 3: Nhận một số dữ liệu

# Plot a sin curve using the x and y axes.
for z in range(0, 50, 5):
x = np.linspace(0, 1, 100)
y = z*np.sin(x * 2 * np.pi) / 50 / 2 + 0.5
plot2din3d(x, y, z)

Bước 4: Plot2Din3D ()

def plot2din3d(x,y,z):
ax.plot(x, y, zs=z, zdir='z')
2d_col_obj = ax.fill_between(x, 0.5, y, step='pre', alpha=0.1)
ax.add_collection3d(2d_col_obj, zs = z, zdir = 'z')

Bước 5: Đặt Legend, đặt giới hạn trục và nhãn

#ax.legend()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_zlim(0, 50)
ax.set_xlabel(‘X’)
ax.set_ylabel(‘Y’)
ax.set_zlabel(‘Z’)

Bước 6: Tùy chỉnh góc xem

ax.view_init(elev=20., azim=-35)

Bước 7: Vẽ cốt truyện

plt.show()

Kết quả cuối cùng

Chúng tôi có thể làm điều này cho bất kỳ loại dữ liệu loạt !!

Dữ liệu trên là, tuy nhiên, dày đặc. Do đó, trông liên tục.

Làm thế nào về dữ liệu rời rạc, không quá bậc?

Hãy để chúng tôi, đặt một số giá trị cho một số biến, mà chúng tôi có thể điều chỉnh để có được các ô khác nhau !!

num_samples = 10
num_series = 3
minx, maxx = 0, 10
res = 100
zmin, zmax = 0, 60
zinterval = 20

Next,

y = np.random.random((num_series,num_samples))x = np.linspace(minx, maxx, num_samples)z_idx_range = int((zmax-zmin)/zinterval)colors = plt.cm.get_cmap(‘inferno’,z_idx_range)

Tiếp theo, chúng tôi nội suy các điểm giữa các điểm dữ liệu mẫu, để có được một cốt truyện trông liên tục !!

for i in range(z_idx_range):
z = zinterval*i + zmin
yz, ys, ye = y[i,:], None, None
ynew_ = np.array([])
for j in range(y.shape[1]-1):
ys = y[i,j]
ye = y[i,j+1]
ynew_ = np.append(ynew_, np.linspace(ys, ye, res), axis = 0)
xz = np.linspace(minx, maxx, (y.shape[1]-1)*res)
plot2din3d_discrete(xz,x,ynew_,yz,z,colors(i))

plot2din3d_discrete()

fig = plt.figure()
ax = fig.add_subplot(projection=’3d’)
0

Hoàn thiện cảm ứng !!!

Bước 5 đến 7 trong ví dụ đầu tiên.

Kết quả

Mã sau đây tạo ra một âm mưu thác nước 3D.

Dưới đây là các chức năng tôi đã xác định:

fig = plt.figure()
ax = fig.add_subplot(projection=’3d’)
1

Con số tôi nhận được trông như thế này:

Hướng dẫn python waterfall plot 3d - cốt truyện thác nước python 3d

Tôi muốn vẽ từng dòng được hiển thị tại một thời điểm. Và sau đó tạo ra một bộ phim ra khỏi cốt truyện xảy ra. Tôi muốn vẽ từng dòng được hiển thị tại một thời điểm. Và sau đó tạo ra một bộ phim ra khỏi cốt truyện xảy ra.