Das Erstellen von Unterplots mit unterschiedlichen Größen ist eine häufige Anforderung bei der Visualisierung von Daten. Matplotlib bietet zwei Ansätze zum Anpassen der Subplot-Dimensionen: durch die Verwendung von GridSpec oder durch die Konfiguration der Figur selbst.
Verwenden der Matplotlib-Figur für die Subplot-Größenbestimmung
Im bereitgestellten Beispiel die Aufgabe besteht darin, zwei Nebenhandlungen zu erstellen, wobei die erste Nebenhandlung dreimal breiter ist als die zweite. Mithilfe des Konstruktors der Figur kann die Größe des ersten Diagramms mithilfe des Arguments figsize angepasst werden. Allerdings kann die Größe des zweiten Plots auf diese Weise nicht direkt gesteuert werden.
Lösung mit Schlüsselwortargumenten (Matplotlib >= 3.6.0)
Ab der Matplotlib-Version 3.6.0 können Schlüsselwortargumente direkt an plt.subplots und subplot_mosaic übergeben werden, um die width_ratios oder anzugeben height_ratios von Nebenplots. Dadurch entfällt die Notwendigkeit von GridSpec für diese spezielle Aufgabe.
import matplotlib.pyplot as plt # Create subplots with custom width ratios f, (a0, a1) = plt.subplots(1, 2, width_ratios=[3, 1]) # Plot on subplots a0.plot(x, y) a1.plot(y, x) # Save to PDF f.savefig('custom_width_subplots.pdf')
Verwenden von Subplots mit Gridspec_kw
Für frühere Versionen von Matplotlib oder für eine detailliertere Kontrolle darüber Für das Subplot-Layout kann die Subplots-Funktion mit dem Argument „gridspec_kw“ verwendet werden. Bei diesem Ansatz werden eine Figur und einzelne Unterplots erstellt, die mit width_ratios oder height_ratios im Gridspec_kw-Wörterbuch angegeben werden.
import numpy as np import matplotlib.pyplot as plt # Generate data x = np.arange(0, 10, 0.2) y = np.sin(x) # Create subplots with custom width ratios f, (a0, a1) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [3, 1]}) # Plot on subplots a0.plot(x, y) a1.plot(y, x) # Tighten layout and save to PDF f.tight_layout() f.savefig('grid_figure.pdf')
Das obige ist der detaillierte Inhalt vonWie kann ich Matplotlib-Subplots mit flexibel konfigurierbaren Größen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!