Differenze tra i metodi cla(), clf() e close() in Matplotlib
Il metodo matplotlib.pyplot.cla()
cancella gli assi correnti, il metodo matplotlib.pyplot.clf()
cancella la cifra corrente e il metodo matplotlib.pyplot.close()
chiude l’intera finestra.
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1)
ax[0].set_xlabel("x")
ax[0].set_ylabel("sinx")
ax[0].set_title("Plot of sinx")
ax[1].plot(x, y2)
ax[1].set_xlabel("x")
ax[1].set_ylabel("cosx")
ax[1].set_title("Plot of cosx")
fig.suptitle("Plot of sinx and cosx", fontsize=16)
fig.tight_layout(pad=3.0)
plt.show()
Produzione:
Useremo questa figura per spiegare queste funzioni: cla()
, clf()
e close()
. La figura è costituita da una figura con due sottotrame; la sottotrama sulla riga superiore è la trama della funzione sinx
, mentre la sottotrama sulla riga inferiore rappresenta la trama della funzione cosx
.
matplotlib.pyplot.cla()
Il comando matplotlib.pyplot.cla()
è usato per cancellare gli assi correnti in Matplotlib. Axes
è semplicemente una parte di una figura, di solito una sottotrama e i suoi dettagli.
Esempio: matplotlib.pyplot.cla()
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1)
ax[0].set_xlabel("x")
ax[0].set_ylabel("sinx")
ax[0].set_title("Plot of sinx")
ax[1].plot(x, y2)
ax[1].set_xlabel("x")
ax[1].set_ylabel("cosx")
ax[1].set_title("Plot of cosx")
ax[1].cla()
fig.suptitle("Plot of sinx and cosx", fontsize=16)
fig.tight_layout(pad=3.0)
plt.show()
Produzione:
Qui, possiamo vedere che il metodo cla()
cancella gli assi ax[1]
, cioè la seconda riga della sottotrama. Cancellare gli assi significa rimuovere la sottotrama con i suoi dettagli, come xlabel
, ylabel
e title
; tuttavia, gli assi ax[0]
o la sottotrama nella riga superiore non sono alterati dal metodo perché cla()
è stato invocato solo dagli assi ax[1]
.
matplotlib.pyplot.cla()
Il matplotlib.pyplot.clf()
cancella l’intera figura in Matplotlib. Una figura può essere considerata il quadro generale di una trama, composta da ogni dettaglio nella trama come sottotrame, sottoasse, titoli e leggende.
Esempio: matplotlib.pyplot.clf()
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1)
ax[0].set_xlabel("x")
ax[0].set_ylabel("sinx")
ax[0].set_title("Plot of sinx")
ax[1].plot(x, y2)
ax[1].set_xlabel("x")
ax[1].set_ylabel("cosx")
ax[1].set_title("Plot of cosx")
fig.suptitle("Plot of sinx and cosx", fontsize=16)
fig.tight_layout(pad=3.0)
plt.clf()
plt.show()
Produzione:
Qui possiamo vedere che il metodo clf()
cancella tutto nella trama. Questo processo include tutti gli assi; tuttavia, la finestra della trama è ancora lì, che può essere riutilizzata per generare altre figure.
Tieni presente che non possiamo usare il metodo clf()
per ogni asse.
matplotlib.pyplot.close()
Il matplotlib.pyplot.close()
chiude semplicemente la finestra della figura in Matplotlib, e non vedremo nulla quando chiameremo il metodo plt.show()
.
Esempio: matplotlib.pyplot.close()
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * math.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1)
ax[0].set_xlabel("x")
ax[0].set_ylabel("sinx")
ax[0].set_title("Plot of sinx")
ax[1].plot(x, y2)
ax[1].set_xlabel("x")
ax[1].set_ylabel("cosx")
ax[1].set_title("Plot of cosx")
fig.suptitle("Plot of sinx and cosx", fontsize=16)
fig.tight_layout(pad=3.0)
plt.close()
plt.show()
Lo script non genera alcun output in quanto il metodo close()
cancella la figura e chiude la finestra; non vedremo nulla usando il processo plt.show()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Matplotlib Axes
- Come ruotare il testo dell'etichetta sull'asse X in Matplotlib
- Come impostare le dimensioni dei caratteri delle etichette in Matplotlib
- Aggiungi un'etichetta dell'asse Y all'asse Y secondario in Matplotlib
- Traccia assi logaritmici in Matplotlib
- Crea un grafico quadrato con assi uguali in Matplotlib
- Imposta i limiti per gli assi in Matplotlib