Построение трехмерного облака точек
Как можно построить такое же трехмерное облако точек синего цвета на python? Проблема в алгоритме создания точек. Как сгенерировать такие же точки для их последующего отображения? Под такими же я подразумеваю трехмерное круглое сечение с рандомными прерываниями.
Ответы (1 шт):
Автор решения: Игорь Игоряныч
→ Ссылка
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
np.random.seed(16)
fig = plt.figure(figsize=(10, 7))
ax = plt.axes(projection='3d');
x = 2*np.random.random(100) - 1
y = x + np.random.randn(100) * 0.2
z = np.sqrt(3 - (x**2 + y**2))
ax.plot3D(np.sort(x), np.sort(y), np.sqrt(3 - (np.sort(x)**2 + np.sort(y)**2)), 'orange')
ax.scatter3D(x, y, z);
plt.show()
По поводу трубы, трубу можно по разному нарисовать, ну например с помощью квадратичной формы
np.random.seed(16)
fig = plt.figure(figsize=(10, 7))
ax = plt.axes(projection='3d');
x = 2*np.random.random(500) - 1
y = x + np.random.randn(500) * 200
z = x**2 - y**2 + x*y
ax.scatter3D(x, y, z, c='blue');
ax.scatter3D(x, y, -(z + 300000), c='blue');
plt.show()


