Heim >Backend-Entwicklung >Python-Tutorial >Können Sie AxesSubplot-Objekte unabhängig von Figuren in Matplotlib erstellen?

Können Sie AxesSubplot-Objekte unabhängig von Figuren in Matplotlib erstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 00:46:02730Durchsuche

Can You Create AxesSubplot Objects Independently of Figures in Matplotlib?

Erstellung von AxesSubplots und Hinzufügen von Figuren entkoppeln

Problem:
Das Anpassen von Matplotlib-Plots erfordert oft die Erstellung von AxesSubplot Objekte. Allerdings sind diese Objekte bei ihrer Erstellung normalerweise an eine Figur gebunden. Dies schränkt die Möglichkeit ein, AxesSubplots über mehrere Figuren hinweg wiederzuverwenden.

Frage:
Ist es möglich, AxesSubplot-Objekte unabhängig von Figure-Instanzen zu erstellen und sie dann nach Bedarf zu verschiedenen Figuren hinzuzufügen?

Antwort:

Ja, es ist möglich, die AxesSubplot-Erstellung und das Hinzufügen von Figuren in matplotlib zu entkoppeln. Es gibt zwei Hauptansätze:

Übergabe von Funktionen mit Axes-Instanzen:

  • Erstellen Sie eine Funktion, die eine Axes-Instanz als Argument verwendet.
  • Implementieren Sie den Plotcode innerhalb dieser Funktion.
  • Übergeben Sie eine vorhandene oder neu erstellte Axes-Instanz an die Funktion.
  • Dies ermöglicht die Wiederverwendung derselben Nebenhandlung in mehreren Figuren durch Übergeben derselben Axes-Instanz zu verschiedenen Funktionsaufrufen.

Achsen an Figuren anhängen:

  • Erstellen Sie eine Axes-Instanz unabhängig von einer Figur.
  • Hinzufügen Fügen Sie die Axes-Instanz mithilfe der Figure.axes.append()-Methode zu einer Figur hinzu.
  • Geben Sie die gewünschte Geometrie innerhalb der append()-Methode an.
  • Dieser Ansatz ermöglicht die übergreifende Wiederverwendung von Axes-Instanzen mehrere Figuren, unabhängig von der Figurengröße oder der Anzahl der Nebenhandlungen.

Beispielcode:

Übergabe von Funktionen mit Achseninstanzen:

import numpy as np
import matplotlib.pyplot as plt

def plot_sin(ax):
    x = np.linspace(0, 6 * np.pi, 100)
    ax.plot(x, np.sin(x))
    ax.set_ylabel('Yabba dabba do!')

fig1, (ax1, ax2) = plt.subplots(nrows=2)
plot_sin(ax1)
plot_sin(ax2)

fig2 = plt.figure()
ax3 = fig2.add_subplot(111)
plot_sin(ax3)

plt.show()

Achsen an Figuren anhängen:

import numpy as np
import matplotlib.pyplot as plt

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
fig2.axes.append(ax1)

plt.show()

Das obige ist der detaillierte Inhalt vonKönnen Sie AxesSubplot-Objekte unabhängig von Figuren in Matplotlib erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn