Ho una funzione z che accetta parametri xey restituisce un output z. Voglio tracciare questo in 3d e impostare le scale. Come posso farlo facilmente? Ho passato troppo tempo a esaminare la documentazione e non una volta vedo un modo per farlo.Voglio usare matplotlib per creare un grafico 3d data una funzione z
risposta
Il tipo di stile di stampa dipende dai dati (cioè si sta tentando di tracciare una curva 3D, o una superficie, o una dispersione ...), ma questo dovrebbe darvi un esempio funzionante per iniziare a giocare.
Fondamentalmente, non si passa la funzione alla trama, prima si crea un dominio di xs e ys, quindi si calcola zs da quello. Nel mio esempio ho appena usato una semplice griglia di punti equidistanti nel piano x-y per il dominio.
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 10
xs = [i for i in range(n) for _ in range(n)]
ys = range(n) * n
zs = [fun(x, y) for x,y in zip(xs,ys)]
ax.scatter(xs, ys, zs)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
Per superfici che è un po 'diverso, si passa in una griglia per il dominio in matrici 2D. Ecco un esempio di superficie liscia:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x**2 + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array([fun(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)
ax.plot_surface(X, Y, Z)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
Per qualche motivo quando cambio la funzione, il grafico praticamente rimane lo stesso? C'è un modo per fare solo una superficie liscia? – WhatsInAName
OK, ho aggiornato la mia risposta con una superficie parabolica inclinata. – wim
Per l'ultimo grafico, c'è un modo per colorare la superficie in base a z? Di ', usando un cloropleto? –
- 1. Modifica posizione dell'asse verticale (z) del grafico 3D (Matplotlib)?
- 2. Animare un grafico 3D rotante in matplotlib
- 3. Propagazione dell'impulso del grafico Matplotlib in 3d
- 4. Animazione 3d scatterplot in matplotlib
- 5. Matplotlib: Formattazione delle date sull'asse x in un grafico a barre 3D
- 6. 3D scatterplot colorato da Z-Value
- 7. Grafico scena 3D per .NET
- 8. Come creare un grafico 3d/superficie con JavaFX?
- 9. Come posso creare una semplice linea 3D con Matplotlib?
- 10. Come creare un grafico a dispersione 3D in Python?
- 11. R: Tracciare una superficie 3D da x, y, z
- 12. MATLAB: È necessario creare un grafico 4D (3D + Colore/Colore)
- 13. Creazione di un grafico 3D da un array 3D di numpy
- 14. matplotlib - superficie 3D da una matrice rettangolare di altezze
- 15. etichette contorni matplotlib in 3D
- 16. Incorporare un grafico 3D interattivo in PySide
- 17. Come creare un grafico della densità in matplotlib?
- 18. Come posso nascondere gli assi in matplotlib 3d?
- 19. Problema bargra 3D in Matplotlib
- 20. È possibile creare un grafico di contorno 3d senza dati continui in R?
- 21. come creare un grafico polare 3d con gnuplot
- 22. Come assegnare una scala di colori a una variabile in un grafico a dispersione 3D?
- 23. Matplotlib: errore "3d proiezione sconosciuta"
- 24. Matplotlib - normali sbagliato su 3D da trama
- 25. attraente grafico 3D in R
- 26. Impostazione del rapporto di aspetto del grafico 3D
- 27. posizioni dell'etichetta di graduazione per trama 3D matplotlib
- 28. Superficie e contorno 3d in matplotlib
- 29. Creare un grafico ad area in pila 100% con matplotlib
- 30. Aggiunta di colori a un grafico del tremito 3D in matplotlib
Il [funzionalità per i grafici 3D] (http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html) in matplotlib è stato aggiunto solo in molto versioni recenti, per quanto ne so. –
Ho già guardato quella pagina e non sono riuscito a trovare alcun esempio di passaggio di una funzione z arbitraria a un plotter 3d – WhatsInAName