Crea un grafico quadrato con assi uguali in Matplotlib
-
set_aspect()
per creare un grafico quadrato con assi uguali -
Metodo
axis()
per generare un grafico quadrato
Possiamo impostare le proporzioni di un grafico usando il metodo set_aspect()
per renderlo un grafico quadrato e il metodo axis()
può anche essere usato per creare un grafico quadrato con assi uguali in Matplotlib.
set_aspect()
per creare un grafico quadrato con assi uguali
Possiamo impostare le proporzioni usando la funzione matplotlib.axes.Axes.set_aspect()
. Se usiamo "equal"
come rapporto di aspetto nella funzione, otteniamo un grafico con la stessa scala dai punti dati alle unità del grafico per l’asse X e l’asse Y.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x, y)
plt.xlim(-3, 3)
plt.ylim(-3, 3)
ax.set_aspect("equal", adjustable="box")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
plt.xlim(-3, 3)
plt.ylim(-3, 3)
ax.set_aspect("equal")
Imposta sia l’asse X che l’asse Y in modo che abbiano lo stesso intervallo. Quindi ax.set_aspect('equal')
imposta entrambi gli assi in modo che siano uguali.
Il metodo precedente produce un grafico quadrato solo quando gli intervalli per entrambi gli assi sono impostati in modo che siano gli stessi. Per generare un grafico quadrato nel caso generale, dobbiamo impostare manualmente le proporzioni utilizzando il seguente comando:
axes.set_aspect(1.0 / axes.get_data_ratio())
axes.get_data_ratio()
ottiene il rapporto tra i dati grezzi del grafico. Il valore del suo reciproco viene passato a set_aspect()
per rendere gli assi uguali senza impostare manualmente i limiti degli assi.
Codice:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x, y)
ax.set_aspect(1.0 / ax.get_data_ratio(), adjustable="box")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
Metodo axis()
per generare un grafico quadrato
Se passiamo "square"
come argomento a matplotlib.pyplot.axis()
, viene creato un grafico quadrato in cui gli intervalli occupati da entrambi gli assi sono uguali alla lunghezza del grafico.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
plt.plot(x, y)
plt.axis("square")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
ax.set_aspect('equal', adjustable='datalim')
. I limiti degli assi espliciti impostati dall’utente non vengono rispettati.Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn