Matplotlib-Funktionen für Layout und Konfiguration


Matplotlib 参考文档Matplotlib-Referenzdokumentation

Layout-Funktionen steuern den Abstand und die Anordnung von Subplots, Konfigurationsfunktionen verwalten globale Matplotlib-Parameter.

Funktionsübersicht

Layout-Funktionen

FunktionBeschreibung
subplots_adjust()Subplot-Abstände manuell anpassen
tight_layout()Automatisches kompaktes Layout
margins()Datenränder festlegen (Leerraum an beiden Enden der Achsen)
subplot_tool()Interaktives Werkzeug zur Anpassung von Subplots starten

Konfigurationsfunktionen

FunktionBeschreibung
rc()rc-Parameter festlegen (unterstützt Batch-Einstellung)
rc_context()Kontextmanager zum vorübergehenden Festlegen von rc-Parametern
rcdefaults()Alle rc-Parameter auf Standardwerte zurücksetzen

Colormap-Funktionen

FunktionBeschreibung
clim()Datenbereich für die Farbzuordnung festlegen
get_cmap()Colormap mit dem angegebenen Namen abrufen
set_cmap()Die Standard-Colormap festlegen
gci()Aktuelles color-mappable Objekt abrufen
sci()Aktuelles color-mappable Objekt festlegen
imread()Liest ein Bild aus einer Datei in ein Array ein
imsave()Speichert ein Array als Bilddatei

Ausgabe- und Interaktionsfunktionen

FunktionBeschreibung
show()Alle geöffneten Figures anzeigen
draw()Erneutes Rendern der aktuellen Figure erzwingen
draw_if_interactive()Figure im interaktiven Modus rendern
pause()Für die angegebene Anzahl von Sekunden pausieren (verarbeitet GUI-Ereignisse während der Pause)
ion() / ioff()Interaktiven Modus aktivieren/deaktivieren
isinteractive()Prüfen, ob aktuell der interaktive Modus aktiv ist
install_repl_displayhook()REPL-Anzeige-Hook installieren
uninstall_repl_displayhook()REPL-Anzeige-Hook deinstallieren
switch_backend()Matplotlib-Backend wechseln

Beispiele für Layout-Funktionen

subplots_adjust() / tight_layout() / margins()

matplotlib.pyplot.subplots_adjust(left=None, bottom=None, right=None,
    top=None, wspace=None, hspace=None)
matplotlib.pyplot.tight_layout(*, pad=1.08, h_pad=None, w_pad=None,
    rect=None)
matplotlib.pyplot.margins(*margins, x=None, y=None, tight=True)

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

fig, axes = plt.subplots(2, 2, figsize=(10, 8))

# Manuelle Steuerung mit subplots_adjust
fig.subplots_adjust(left=0.1, right=0.95,
                     top=0.9, bottom=0.1,
                     hspace=0.4, wspace=0.3)

for i, ax in enumerate(axes.flatten()):
    ax.plot(x, np.sin(x + i))
    ax.set_title(f'Diagramm {i+1}')
    ax.set_xlabel('Eine lange x-Beschriftung')
    ax.set_ylabel('Eine lange y-Beschriftung')
    # Ränder festlegen
    ax.margins(x=0.1, y=0.15)

fig.suptitle('subplots_adjust() + margins()', fontsize=14)
plt.show()
print("Beispiel: Layout-Beispiel")

Beispiele für Konfigurationsfunktionen

rc() / rc_context() / rcdefaults()

matplotlib.pyplot.rc(group, **kwargs)
matplotlib.pyplot.rc_context(rc=None, fname=None)
matplotlib.pyplot.rcdefaults()

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Methode 1: rcParams global festlegen
plt.rcParams['font.size'] = 12
plt.rcParams['axes.grid'] = True

# Methode 2: rc() verwenden, um im Batch festzulegen
plt.rc('lines', linewidth=2, color='steelblue')
plt.rc('axes', titlesize=14, grid=True)

x = np.linspace(0, 10, 50)

# rc_context temporäre Einstellung (nur innerhalb des with-Blocks gültig)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
                                layout='constrained')

# ax1 verwendet globale rc-Einstellungen
ax1.plot(x, np.sin(x))
ax1.set_title('Globale rc-Einstellungen')

# ax2 verwendet temporäre Stilüberschreibung
with plt.rc_context({'lines.color': 'coral',
                      'lines.linestyle': '--',
                      'axes.facecolor': '#f0f0f0'}):
    ax2.plot(x, np.cos(x))
    ax2.set_title('rc_context()-Überschreibungen')

plt.show()

# Standardwerte wiederherstellen
plt.rcdefaults()
print("Beispiel: rc-Einstellungen auf Standardwerte zurückgesetzt")

Beispiele für Colormap-Funktionen

clim() / get_cmap() / set_cmap()

matplotlib.pyplot.clim(vmin=None, vmax=None)
matplotlib.pyplot.get_cmap(name=None, lut=None)
matplotlib.pyplot.set_cmap(cmap)

Beispiel

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(10, 10)

# Aktuelle Standard-Colormap anzeigen
print('Standard-Cmap:', plt.rcParams['image.cmap'])

# Eine bestimmte Colormap abrufen
cmap = plt.get_cmap('plasma')
print('Cmap erhalten:', cmap.name)

fig, ax = plt.subplots(figsize=(5, 4), layout='constrained')

im = ax.imshow(data, cmap='hot', vmin=0.2, vmax=0.8)
# clim() kann auch verwendet werden, um den Bereich zu ändern
plt.clim(0.1, 0.9)

fig.colorbar(im, ax=ax, label='Wert')
ax.set_title('imshow mit clim()')
plt.show()

# Globale Standard-Colormap festlegen
plt.set_cmap('Blues')
print('Neue Standard-cmap:', plt.rcParams['image.cmap'])
Default cmap: viridis
Got cmap: plasma
New default cmap: Blues

imread() / imsave()

matplotlib.pyplot.imread(fname, format=None)
matplotlib.pyplot.imsave(fname, arr, **kwargs)

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Bilddaten erstellen
img = np.random.rand(50, 50)

# Als PNG speichern (keine Figure erforderlich)
plt.imsave('example_temp_image.png', img,
           cmap='viridis')
print("Beispiel: Bild mit imsave() gespeichert")

# Wieder einlesen
loaded = plt.imread('example_temp_image.png')
print("Geladene Form:", loaded.shape)
print("Beispiel: Bild mit imread() geladen")
Loaded shape: (50, 50, 4)

Beispiele für Ausgabe- und Interaktionsfunktionen

ion() / ioff() / pause() / draw()

matplotlib.pyplot.ion()    # 开启交互模式
matplotlib.pyplot.ioff()   # 关闭交互模式
matplotlib.pyplot.isinteractive()  # 检查状态
matplotlib.pyplot.pause(interval)  # 暂停并处理事件
matplotlib.pyplot.draw()           # 强制重绘

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Beispiel für den interaktiven Modus (in einer Umgebung ausführen, die Interaktion unterstützt)
print('Interaktiver Modus:', plt.isinteractive())

# Manuelle Steuerung des Renderns im nicht-interaktiven Modus
plt.ioff()
fig, ax = plt.subplots()
x = np.linspace(0, 10, 100)

for i in range(3):
    ax.clear()
    ax.plot(x, np.sin(x + i * 0.5))
    ax.set_title(f'Frame {i+1}')
    plt.draw()              # Manuell rendern
    plt.pause(0.5)          # 0.5 Sekunden pausieren

plt.show()
print("Beispiel: Animation abgeschlossen")

switch_backend()

matplotlib.pyplot.switch_backend(newbackend)

switch_backend() kann erst nach dem ersten Import von pyplot und vor dem Erstellen einer Figure aufgerufen werden. Um Backends nach dem Erstellen einer Figure zu wechseln, müssen Sie die experimentellematplotlib.use()。


Matplotlib 参考文档Matplotlib-Referenzdokumentation

Andere Erweiterungen