Crea un grafico di superficie in Matplotlib
In Matplotlib, usiamo il toolkit mplot3d
per l’analisi e la visualizzazione 3-D che contiene metodi di stampa 3-D costruiti sopra le funzioni 2-D di Matplotlib. Possiamo creare assi 3-D passando l’argomento projection='3d'
a una qualsiasi delle funzioni di creazione degli assi in Matplotlib. Una volta inizializzati gli assi 3D, possiamo usare il metodo plot_surface()
per generare grafici di superficie.
Metodo Axes3D.plot_surface()
Possiamo creare un grafico di superficie usando il metodo Axes3D.plot_surface(X, Y, Z, *args, **kwargs)
dove X, Y e Z sono tutti array 2-D.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
fig = plt.figure(figsize=(8, 6))
ax3d = plt.axes(projection="3d")
xdata = np.linspace(-3, 3, 100)
ydata = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(xdata, ydata)
Z = 1 / (1 + np.exp(-X - Y))
ax3d = plt.axes(projection="3d")
ax3d.plot_surface(X, Y, Z, cmap="plasma")
ax3d.set_title("Surface Plot in Matplotlib")
ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")
plt.show()
Questo genera un grafico di superficie nello spazio 3D usando Matplotlib. Qui il parametro cmap
viene utilizzato per fare una buona rappresentazione dei nostri dati nello spazio colore 3D. Il colore della trama varia al variare del valore della variabile dipendente.
Possiamo personalizzare la trama variando i seguenti parametri:
rstride
: dimensione del passo della riga il cui valore predefinito è 10cstride
: dimensione del passo della colonna il cui valore predefinito è 10color
: colore della superficiecmap
: mappa dei colori della superficiefacecolors
: colori del viso per ogni patch sulla superficienorm
: un’istanza di Normalizza per mappare i valori ai colorivmin
: valore minimo da mapparevmax
: valore massimo da mappareshade
: se ombreggiare i colori del viso
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
fig = plt.figure(figsize=(8, 6))
ax3d = plt.axes(projection="3d")
xdata = np.linspace(-3, 3, 100)
ydata = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(xdata, ydata)
Z = 1 / (1 + np.exp(-X - Y))
ax3d = plt.axes(projection="3d")
surf = ax3d.plot_surface(X, Y, Z, rstride=7, cstride=7, cmap="viridis")
fig.colorbar(surf, ax=ax3d)
ax3d.set_title("Surface Plot in Matplotlib")
ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")
plt.savefig("Customized Surface Plot.png")
plt.show()
In questo esempio, aggiungiamo una barra dei colori nella figura utilizzando il metodo colorbar()
e passando l’oggetto del grafico di superficie al metodo che rende la figura più informativa.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn