Différences entre les méthodes cla(), clf() et close() dans Matplotlib

Suraj Joshi 30 janvier 2023
  1. matplotlib.pyplot.cla()
  2. matplotlib.pyplot.cla()
  3. matplotlib.pyplot.close()
Différences entre les méthodes cla(), clf() et close() dans Matplotlib

La méthode matplotlib.pyplot.cla() efface les axes courants, la méthode matplotlib.pyplot.clf() efface la figure courante, et la méthode matplotlib.pyplot.close() ferme toute la fenêtre.

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

Production:

Graphique de sinx et cosx Matplotlib

Nous utiliserons ce chiffre pour expliquer ces fonctions : cla(), clf() et close(). La figure consiste en une figure avec deux sous-tracés ; le sous-tracé de la ligne supérieure est le tracé de la fonction sinx, tandis que le sous-tracé de la ligne inférieure représente le tracé de la fonction cosx.

matplotlib.pyplot.cla()

La commande matplotlib.pyplot.cla() est utilisée pour effacer les axes actuels dans Matplotlib. Les Axes sont simplement une partie d’une figure, généralement un sous-plot et ses détails.

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

Production:

plt.cla() exemple dans Matplotlib Python

Ici, on peut voir que la méthode cla() efface les axes ax[1], c’est-à-dire la deuxième ligne de la sous-placette. Effacer les axes signifie supprimer la sous-placette avec ses détails, tels que xlabel, ylabel, et le title ; cependant, les axes ax[0] ou la sous-placette de la rangée supérieure ne sont pas modifiés par la méthode parce que cla() n’a été invoquée que par les axes “ax[1]”.

matplotlib.pyplot.cla()

Le matplotlib.pyplot.clf() efface le chiffre entier dans Matplotlib. Une figure peut être considérée comme la vue d’ensemble d’une intrigue, constituée de tous les détails de l’intrigue comme les sous-intrigues, les sous-axes, les titres et les légendes.

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

Production:

plt.clf() exempleen Python Matplotlib

Ici, on peut voir que la méthode clf() efface tout dans la parcelle. Ce processus inclut tous les axes ; cependant, la fenêtre du tracé est toujours là, ce qui peut être réutilisé pour générer d’autres chiffres.

Gardez à l’esprit que nous ne pouvons pas utiliser la méthode clf() pour chaque axe.

matplotlib.pyplot.close()

La méthode matplotlib.pyplot.close() ferme simplement la fenêtre des figures dans Matplotlib, et nous ne verrons rien en appelant la méthode plt.show().

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

Le script ne génère aucune sortie car la méthode close() efface la figure et ferme la fenêtre ; nous ne verrons rien en utilisant le processus plt.show().

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Matplotlib Axes