3D obrázek v matplotlib pomocí rovnice s x a y s Python

0

Otázka

Chtěl bych si vytvořit 3D obrázek rovnici s x a y, podobně jako na Google 3D grafu.

Příklad:

vstup: sin(sqrt(x**2 + y**2))

výstup (3D vykreslení): sin(sqrt(x2 + y2))

Z bude zřejmě roven dané zadání, ale jak se x a y vypočítá? Díky za každou pomoc!

3d matplotlib python python-3.x
2021-11-23 22:19:24
1

Nejlepší odpověď

1

Můžete začít tím, že vytvoří meshgrid pro vaše X a Y. Pak spočítat své Z tím, že dělá Z=np.sin(np.sqrt(X**2 + Y**2)). Konečně můžete spiknutí povrchu pomocí funkce matplotlib ax.plot_surface(X, Y, Z).

Můžete najít kód níže:

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

N_points=100
x = np.linspace(-10, 10, N_points)  
y = np.linspace(-10, 10, N_points)  
  
X, Y = np.meshgrid(x, y)
Z=np.sin(np.sqrt(X**2 + Y**2))

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

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

A výstup tento kód dává:

enter image description here

2021-11-24 00:10:20

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................