Cómo hacer una gráficos cuadrada con ejes iguales en Matplotlib
-
set_aspect()
para hacer un diagrama cuadrado con ejes iguales -
Método
axis()
para generar un diagrama cuadrado
Podemos establecer la relación de aspecto de una gráfica usando el método set_aspect()
para convertirla en una gráfica cuadrada y el método axis()
también se puede usar para hacer una gráfica cuadrada con ejes iguales en Matplotlib.
set_aspect()
para hacer un diagrama cuadrado con ejes iguales
Podemos establecer la relación de aspecto utilizando la función matplotlib.axes.Axes.set_aspect()
. Si usamos "equal"
como una relación de aspecto en la función, obtenemos un gráfico con la misma escala desde los puntos de datos a las unidades de gráfico para el eje X y el eje 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")
Establece tanto el eje X como el eje Y para que tengan el mismo rango. Entonces ax.set_aspect('equal')
establece que ambos ejes sean iguales.
El método anterior solo produce una gráfica cuadrada cuando los rangos para ambos ejes se configuran de la misma manera. Para generar una gráfica cuadrada en el caso general, tenemos que establecer manualmente la relación de aspecto usando el siguiente comando:
axes.set_aspect(1.0 / axes.get_data_ratio())
axes.get_data_ratio()
obtiene la proporción de los datos de trama sin procesar. El valor de su recíproco se pasa a set_aspect()
para que los ejes sean iguales sin establecer los límites de los ejes manualmente.
Código:
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()
Método axis()
para generar un diagrama cuadrado
Si pasamos "square"
como argumento a matplotlib.pyplot.axis()
, crea un gráfico cuadrado donde los rangos para ambos ejes ocupan son iguales a la longitud en la gráfica.
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', ajustable = 'datalim')
. Los límites de eje explícitos establecidos por el usuario no se respetan.Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Matplotlib Axes
- Cómo girar el texto de la etiqueta de la marca del eje X en Matplotlib
- Cómo establecer el tamaño de la fuente de las etiquetas de garrapata en Matplotlib
- Cómo añadir una etiqueta del eje y al eje y secundario en Matplotlib
- Cómo trazar ejes logarítmicos en Matplotlib
- Cómo establecer límites para ejes en Matplotlib