π ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ 3D Π³ΡΠ°ΡΠΈΠΊ Π² ΠΠΈΡΠΎΠ½Π΅ | ΠΡΠΎΡΡΠΎΠΉ Π³Π°ΠΉΠ΄ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ π
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠ° Π² Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ matplotlib.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Figure ΠΈ Axes
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ΠΠ°Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠ°
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
z = [1, 8, 27, 64, 125]
# Π‘ΡΡΠΎΠΈΠΌ 3D Π³ΡΠ°ΡΠΈΠΊ
ax.plot(x, y, z)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π³ΡΠ°ΡΠΈΠΊ
plt.show()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ matplotlib. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ Figure ΠΈ Axes Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΡ Π·Π°Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠ° - ΠΌΠ°ΡΡΠΈΠ²Ρ x, y ΠΈ z. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ plot() ΠΎΠ±ΡΠ΅ΠΊΡΠ° Axes, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ 3D Π³ΡΠ°ΡΠΈΠΊ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΡΠ΅ΠΉ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ°ΠΌ Π³ΡΠ°ΡΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° show().
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΡ 3D Π³ΡΠ°ΡΠΈΠΊ Π² Python!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ 3D Π³ΡΠ°ΡΠΈΠΊ Π² ΠΠΈΡΠΎΠ½Π΅
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² ΠΠΈΡΠΎΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Matplotlib.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² ΠΠΈΡΠΎΠ½Π΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install matplotlib
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Matplotlib ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠΎΠ².
Π¨Π°Π³ 2: ΠΡΠΎΡΡΠΎΠΉ 3D Π³ΡΠ°ΡΠΈΠΊ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ 3D Π³ΡΠ°ΡΠΈΠΊΠ° Π² ΠΠΈΡΠΎΠ½Π΅. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ 3D Π³ΡΠ°ΡΠΈΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Matplotlib:
import matplotlib.pyplot as plt
import numpy as np
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D Π³ΡΠ°ΡΠΈΠΊΠ°
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('ΠΡΠΎΡΡΠΎΠΉ 3D Π³ΡΠ°ΡΠΈΠΊ')
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°
plt.show()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΡΠΊΡ ΡΠΎΡΠ΅ΠΊ Π² ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΠΎΡ -5 Π΄ΠΎ 5 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΡΠ° Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Z. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΡΡΠΎΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ plot_surface.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊ ΠΎΡΡΠΌ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊ Π³ΡΠ°ΡΠΈΠΊΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π³ΡΠ°ΡΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ show().
Π¨Π°Π³ 3: ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ 3D Π³ΡΠ°ΡΠΈΠΊ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ 3D Π³ΡΠ°ΡΠΈΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅Ρ Π³ΡΠ°ΡΠΈΠΊΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»Π΅Π³Π΅Π½Π΄Ρ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ.
import matplotlib.pyplot as plt
import numpy as np
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D Π³ΡΠ°ΡΠΈΠΊΠ°
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z, cmap='viridis')
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Ρ
fig.colorbar(surf)
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»Π΅Π³Π΅Π½Π΄Ρ
ax.legend()
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ 3D Π³ΡΠ°ΡΠΈΠΊ')
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°
plt.show()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ½ΡΡ ΡΠΊΠ°Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ colorbar ΠΈ Π»Π΅Π³Π΅Π½Π΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ legend. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊ ΠΎΡΡΠΌ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊ Π³ΡΠ°ΡΠΈΠΊΡ.
Π¨Π°Π³ 4: 3D Π³ΡΠ°ΡΠΈΠΊ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Matplotlib ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ 3D Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΈΠ»ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ scatter plot, wireframe, surface plot ΠΈ Π΄Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
Scatter plot
import matplotlib.pyplot as plt
import numpy as np
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)
# ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D scatter plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('3D Scatter Plot')
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°
plt.show()
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 3D scatter plot Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ scatter Π²ΠΌΠ΅ΡΡΠΎ plot_surface, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠΎΡΠΊΠΈ Π² 3D ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅.
Wireframe plot
import matplotlib.pyplot as plt
import numpy as np
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ 3D wireframe plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('3D Wireframe Plot')
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ°
plt.show()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ plot_wireframe Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΠΊΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Z Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊ ΠΎΡΡΠΌ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊ Π³ΡΠ°ΡΠΈΠΊΡ.
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ 3D Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² ΠΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Matplotlib. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²Π½ΡΡ ΡΠΎΡΠΊΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ΄Π΅ΡΠΌΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. Π£Π΄Π°ΡΠΈ Π² Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ !