Heim > Artikel > Backend-Entwicklung > Können AxesSubPlot-Objekte unabhängig von Figuren in Matplotlib erstellt werden?
Ist die unabhängige Erstellung von AxesSubPlot-Objekten möglich?
Wie die Matplotlib-Dokumentation nahelegt, wird die Erstellung von AxesSubPlot-Instanzen innerhalb einer Figur normalerweise durch Figure erreicht. add_subplot. Es kann jedoch wünschenswert sein, diese Objekte unabhängig von einer Figur zu erstellen, um ihre Wiederverwendung in mehreren Figuren zu ermöglichen.
AxesSubPlots in verschiedenen Figuren wiederverwenden
Obwohl dies nicht möglich ist Um die Erstellung von Achsen vollständig von Figuren zu entkoppeln, besteht die Möglichkeit, zuvor erstellte Achsen in neuen oder vorhandenen Figuren wiederzuverwenden. Dies kann mit einer einfachen Funktion erreicht werden:
def plot_axes(ax, fig=None, geometry=(1, 1, 1)): if fig is None: fig = plt.figure() if ax.get_geometry() != geometry: ax.change_geometry(*geometry) ax = fig.axes.append(ax) return fig
Diese Funktion nimmt eine vorhandene Achseninstanz ax und fügt sie optional zu einer neuen oder vorhandenen Figur fig hinzu, um sicherzustellen, dass sie die angegebene Geometrie (Zeilen, Spalten, Nummer innerhalb der Gruppe).
Beispielverwendung
Um diese Funktionalität zu demonstrieren, beachten Sie Folgendes Code:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 6 * np.pi, 100) # Create axes subplots independently ax1 = plt.axes() ax2 = plt.axes() # Add ax1 to figure 1 fig1 = plt.figure() plt.axes.append(ax1) # Add ax2 to figure 2 fig2 = plt.figure() plt.axes.append(ax2) # Plot data on ax1 ax1.plot(x, np.sin(x)) ax1.set_ylabel("Sin(x)") # Plot data on ax2 ax2.plot(x, np.cos(x)) ax2.set_ylabel("Cos(x)") plt.show()
In diesem Beispiel werden zwei Achsen-Unterplots unabhängig voneinander erstellt und dann zu zwei separaten Figuren hinzugefügt. Jede Nebenhandlung enthält ihre eigenen Daten und Beschriftungen.
Das obige ist der detaillierte Inhalt vonKönnen AxesSubPlot-Objekte unabhängig von Figuren in Matplotlib erstellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!