Disattiva gli assi per le sottotrame in Matplotlib

Suraj Joshi 30 gennaio 2023
  1. matplotlib.axes.Axes.axis()
  2. matplotlib.axes.Axes.set_axis_off()
  3. matplotlib.pyplot.axis()
  4. get_xaxis().set_visible() e get_yaxis().set_visible()
Disattiva gli assi per le sottotrame in Matplotlib

Possiamo disattivare gli assi delle sottotrame in Matplotlib usando i metodi axis() e set_axis_off() per gli oggetti assi. Possiamo anche disattivare gli assi usando il metodo axis() per l’oggetto pyplot. Per disattivare l’asse per l’asse X in particolare usiamo il metodo axes.get_xaxis().set_visible() e per disattivare l’asse per l’asse Y in particolare usiamo il metodo axes.get_yaxis().set_visible().

matplotlib.axes.Axes.axis()

Per disattivare gli assi per le sottotrame, passiamo off come parametro al metodo 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()

Produzione:

Disattiva gli assi per le sottotrame in Matplotlib usando l’asse per l’oggetto axes

Qui, disattiviamo gli assi per ogni sottotrama usando il metodo axes.axis("off").

matplotlib.axes.Axes.set_axis_off()

Usiamo matplotlib.axes.Axes.set_axis_off() per disattivare gli assi x e y, influenzando anche le linee degli assi, le tacche, le etichette, la griglia e le etichette degli assi.

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()

Produzione:

Disattiva gli assi per le sottotrame in Matplotlib usando set_axis_off per l’oggetto axes

matplotlib.pyplot.axis()

Se una figura contiene un singolo grafico, possiamo disattivare gli assi per le sottotrame passando off come argomento al metodo matplotlib.pyplot.axis(). Tuttavia, se la figura contiene più sottotrame, questo metodo disattiva gli assi solo per l’ultima sottotrama.

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()

Produzione:

Disattiva gli assi per le sottotrame in Matplotlib utilizzando l’asse per l’oggetto del tracciato

get_xaxis().set_visible() e get_yaxis().set_visible()

Possiamo disattivare l’asse X passando False come argomento a get_xaxis().set_visible(). E per disattivare l’asse Y passiamo False come argomento a get_yaxis().set_visible(). Possiamo disattivare il singolo asse usando questa funzione.

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()

Produzione:

Disattiva gli assi per le sottotrame in Matplotlib utilizzando il metodo set_visible

Tuttavia, questo metodo non ha alcun effetto sulla cornice della trama. Per disattivare il frame, passiamo l’argomento della parola chiave frameon=False al metodo plt.axes().

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Matplotlib Axes