Matplotlib imshow()-Methode
Die Funktion imshow() ist eine Funktion in der Matplotlib-Bibliothek, die zum Anzeigen von Bildern verwendet wird.
Die Funktion imshow() wird häufig verwendet, um zweidimensionale Graustufenbilder oder Farbbilder darzustellen.
Die Funktion imshow() kann verwendet werden, um Matrizen, Heatmaps, Karten usw. darzustellen.
Die Syntax der Methode imshow() ist wie folgt:
imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)
Parameter description:
X: Eingabedaten. Es kann ein zweidimensionales Array, ein dreidimensionales Array, ein PIL-Bildobjekt, ein matplotlib-Pfadobjekt usw. sein.cmap: Farbkarte. Wird verwendet, um die Farben zu steuern, die verschiedenen Werten im Bild entsprechen. Sie können eine integrierte Farbkarte auswählen, wie z. B.gray、hot、jetusw., oder Sie können auch eine Farbkarte individuell anpassen.norm: Wird verwendet, um die Normalisierungsmethode für Werte zu steuern. Sie können wählenNormalize、LogNormund andere Normalisierungsmethoden.aspect: Steuert das Seitenverhältnis des Bildes. Kann eingestellt werden aufautooder eine Zahl.interpolation: Interpolationsmethode. Wird verwendet, um die Glattheit und den Detailgrad des Bildes zu steuern. Sie können wählennearest、bilinear、bicubicund andere Interpolationsmethoden.alpha: Bildtransparenz. Der Wertebereich ist 0~1.origin: Die Position des Achsenursprungs. Kann eingestellt werden aufupperoderlower。extent: Steuert den anzuzeigenden Datenbereich. Kann eingestellt werden auf[xmin, xmax, ymin, ymax]。vmin、vmax: Steuert den Wertebereich der Farbkarte.filternorm 和 filterrad: Das für die Bildfilterung verwendete Objekt. Kann eingestellt werden aufNone、antigrain、freetypeusw.imlim: Wird verwendet, um den Anzeigebereich des Bildes anzugeben.resample: Wird verwendet, um die Bild-Resampling-Methode anzugeben.url: Wird verwendet, um den Bildlink anzugeben.
Nachfolgend finden Sie einige Beispiele für die Verwendung der Funktion imshow().
Graustufenbild anzeigen
Beispiel
import numpy as np
# Ein zweidimensionales Zufallsarray generieren
img = np.random.rand(10, 10)
# Graustufenbild darstellen
plt.imshow(img, cmap='gray')
# Bild anzeigen
plt.show()
Im obigen Beispiel haben wir ein 10x10-Zufallsarray erzeugt und die Funktion imshow() verwendet, um es als Graustufenbild anzuzeigen.
Wir haben den Parameter cmap auf gray gesetzt, was bedeutet, dass das Bild mit einer Graustufen-Farbtabelle angezeigt wird.
Das Anzeigeergebnis ist wie folgt:

Farbbild anzeigen
Beispiel
import numpy as np
# Ein zufälliges Farbbild erzeugen
img = np.random.rand(10, 10, 3)
# Das Farbbild plotten
plt.imshow(img)
# Bild anzeigen
plt.show()
Im obigen Beispiel haben wir ein zufälliges 10x10-Farbbild erzeugt und die Funktion imshow() verwendet, um es anzuzeigen.
Da ein Farbbild ein dreidimensionales Array ist, muss der Parameter cmap nicht gesetzt werden.
Das Anzeigeergebnis ist wie folgt:

Heatmap anzeigen
Beispiel
import numpy as np
# Ein zweidimensionales Zufallsarray generieren
data = np.random.rand(10, 10)
# Die Heatmap plotten
plt.imshow(data, cmap='hot')
# Bild anzeigen
plt.colorbar()
plt.show()
Im obigen Beispiel haben wir ein 10x10-Zufallsarray erzeugt und die Funktion imshow() verwendet, um es als Heatmap anzuzeigen.
Wir haben den cmap-Parameter auf hot gesetzt, was bedeutet, dass das Bild mit einer Heat-Farbkarte angezeigt wird.
Zusätzlich haben wir auch eine Colorbar hinzugefügt, um die Beziehung zwischen Datenwerten und Farben zu sehen.
Das Anzeigeergebnis ist wie folgt:

Karte anzeigen
Beispiel
import numpy as np
from PIL import Image
# Kartenbild laden, Download-URL: /static.jyshare.com/images/demo/map.jpeg
img = Image.open('map.jpg')
# In ein Array konvertieren
data = np.array(img)
# Karte plotten
plt.imshow(data)
# Achsen ausblenden
plt.axis('off')
# Bild anzeigen
plt.show()
Im obigen Beispiel haben wir ein Kartenbild geladen und es in ein Array umgewandelt.
Dann haben wir die Funktion imshow() verwendet, um es anzuzeigen, und dieaxis('off')Funktion verwendet, um die Achsen auszublenden, damit die Karte besser betrachtet werden kann.
Das Anzeigeergebnis ist wie folgt:

Matrix anzeigen
Beispiel
import numpy as np
# Eine Zufallsmatrix erzeugen
data = np.random.rand(10, 10)
# Die Matrix plotten
plt.imshow(data)
# Bild anzeigen
plt.show()
Im obigen Beispiel haben wir eine Zufallsmatrix erzeugt und die Funktion imshow() verwendet, um sie als Bild anzuzeigen.
Da eine Matrix auch ein zweidimensionales Array ist, kann die Funktion imshow() verwendet werden, um sie anzuzeigen.
Das Anzeigeergebnis ist wie folgt:

Weitere Beispiele
Das Folgende erstellt ein zweidimensionales 4x4-numpy-Array und führt drei verschiedene imshow-Bildanzeigen darauf aus.
- Die erste zeigt die Graustufen-Farbzuordnungsmethode, ohne Farbmischung durchzuführen.
- Die zweite zeigt ein Bild unter Verwendung der viridis-Farbkarte, ebenfalls ohne Farbmischung durchzuführen.
- Die dritte zeigt ein Bild unter Verwendung der viridis-Farbkarte und verwendet die bikubische Interpolationsmethode für die Farbmischung.
Beispiel
import numpy as np
n = 4
# Ein zweidimensionales n x n numpy-Array erstellen
a = np.reshape(np.linspace(0,1,n**2), (n,n))
plt.figure(figsize=(12,4.5))
# Das erste Bild zeigt die Graustufen-Farbzuordnungsmethode, ohne Farbmischung durchzuführen
plt.subplot(131)
plt.imshow(a, cmap='gray', interpolation='nearest')
plt.xticks(range(n))
plt.yticks(range(n))
# Graustufen-Zuordnung, keine Farbmischung
plt.title('Graustufen-Farbkarte, keine Farbmischung', y=1.02, fontsize=12)
# Das zweite Bild zeigt ein Bild, das die viridis-Farbkarte verwendet, ebenfalls ohne Farbmischung durchzuführen
plt.subplot(132)
plt.imshow(a, cmap='viridis', interpolation='nearest')
plt.yticks([])
plt.xticks(range(n))
# Viridis-Zuordnung, keine Farbmischung
plt.title('Viridis-Farbkarte, keine Farbmischung', y=1.02, fontsize=12)
# Das dritte Bild zeigt ein Bild, das die Viridis-Farbkarte verwendet und die bikubische Interpolationsmethode zum Farbmischen nutzt
plt.subplot(133)
plt.imshow(a, cmap='viridis', interpolation='bicubic')
plt.yticks([])
plt.xticks(range(n))
# Viridis-Mapping, bikubisches Blending
plt.title('Viridis-Farbkarte, bikubisches Blending', y=1.02, fontsize=12)
plt.show()
Das Anzeigeergebnis ist wie folgt:
