Cómo desactivar los ejes para subtramas en Matplotlib

Suraj Joshi 30 enero 2023
  1. matplotlib.axes.Axes.axis()
  2. matplotlib.axes.Axes.set_axis_off()
  3. matplotlib.pyplot.axis()
  4. get_xaxis().set_visible() y get_yaxis().set_visible()
Cómo desactivar los ejes para subtramas en Matplotlib

Podemos desactivar los ejes de las subtramas en Matplotlib utilizando los métodos axis() y set_axis_off() para los objetos de los ejes. También podemos desactivar los ejes usando el método axis() para el objeto pyplot. Para desactivar el eje para el eje X en particular, utilizamos el método axes.get_xaxis().set_visible() y para desactivar el eje para el eje Y en particular, utilizamos el método axes.get_yaxis().set_visible().

matplotlib.axes.Axes.axis()

Para desactivar los ejes de subtramas, pasamos off como parámetro a matplotlib.axes.Axes.axis().

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].axis("off")

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].axis("off")


ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].axis("off")


ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].axis("off")

fig.tight_layout()
plt.show()

Producción:

Desactivar ejes para subtramas en Matplotlib usando el eje para objetos de ejes

Aquí, apagamos los ejes para cada subtrama usando el método axes.axis("off").

matplotlib.axes.Axes.set_axis_off()

Usamos matplotlib.axes.Axes.set_axis_off() para activar x- e y- eje desactivado que afecta a las líneas del eje, las marcas, las marcas de graduación, la cuadrícula y las etiquetas del eje también.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].set_axis_off()

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].set_axis_off()


ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].set_axis_off()


ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].set_axis_off()

fig.tight_layout()
plt.show()

Producción:

Desactivar ejes para subtramas en Matplotlib usando set_axis_off para el objeto ejes

matplotlib.pyplot.axis()

Si una figura tiene una sola gráfica, podemos desactivar los ejes de las subtramas pasando off como argumento a matplotlib.pyplot.axis(). Sin embargo, si la figura contiene varias subtramas, este método solo desactiva los ejes de la última subtrama.

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("off")
plt.show()

Producción:

Desactivar ejes para subtramas en Matplotlib usando ejes para objeto de trazado

get_xaxis().set_visible() y get_yaxis().set_visible()

Podemos desactivar el eje X pasando False como argumento para get_xaxis().set_visible(). Y para desactivar el eje Y, pasamos False como argumento para get_yaxis().set_visible(). Podemos hacer que el eje único se apague usando esta función.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].get_xaxis().set_visible(False)
ax[0, 0].get_yaxis().set_visible(False)

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].get_xaxis().set_visible(False)
ax[0, 1].get_yaxis().set_visible(False)


ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].get_xaxis().set_visible(False)
ax[1, 0].get_yaxis().set_visible(False)


ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].get_xaxis().set_visible(False)
ax[1, 1].get_yaxis().set_visible(False)

fig.tight_layout()
plt.show()

Producción:

Desactivar ejes para subtramas en Matplotlib usando el método set_visible

Sin embargo, este método no tiene efecto en el marco de la trama. Para desactivar el marco, pasamos el argumento de la palabra clave frameon=False al método plt.axes().

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Matplotlib Axes