Matplotlib-Funktionen für Layout und Konfiguration
Matplotlib-Referenzdokumentation
Layout-Funktionen steuern den Abstand und die Anordnung von Subplots, Konfigurationsfunktionen verwalten globale Matplotlib-Parameter.
Funktionsübersicht
Layout-Funktionen
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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")
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")
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'])
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")
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")
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 experimentelle
matplotlib.use()。
Andere Erweiterungen