Matplotlib Farbpalette-Bildgenerierung

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial wird Ihnen der Prozess der Erstellung eines Satzes von Bildern mit einer einzigen Farbskala, Norm und Farbskala in der Matplotlib-Bibliothek von Python gezeigt. Sie werden lernen, wie Daten generiert werden, Farbskalen festgelegt werden und Bilder aktualisiert werden, um auf Änderungen in der Norm anderer Bilder zu reagieren.

Tipps für virtuelle Maschinen

Nachdem der virtuelle Maschinenstart abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

Zunächst müssen wir die erforderlichen Bibliotheken importieren: numpy und matplotlib. Wir setzen auch einen Zufallszahlengenerator, um die Reproduzierbarkeit zu gewährleisten.

import matplotlib.pyplot as plt
import numpy as np

Daten generieren und Teilplots erstellen

Als nächstes werden wir die Daten für unsere Bilder generieren. Wir werden ein 3x2-Gitter von Teilplots erstellen, wobei jeder Teilplot ein zufällig generiertes Array von Werten enthält.

np.random.seed(19680801)
Nr = 3
Nc = 2

fig, axs = plt.subplots(Nr, Nc)
fig.suptitle('Multiple images')

images = []
for i in range(Nr):
    for j in range(Nc):
        ## Generate data with a range that varies from one plot to the next.
        data = ((1 + i + j) / 10) * np.random.rand(10, 20)
        images.append(axs[i, j].imshow(data))
        axs[i, j].label_outer()

Farbskala einstellen und Farbskala erstellen

Jetzt werden wir die Farbskala für unsere Bilder einstellen und eine Farbskala erstellen, um den Wertebereich anzuzeigen. Wir werden den kleinsten und größten Wert für alle Bilder finden und die Farbskala entsprechend normalisieren.

vmin = min(image.get_array().min() for image in images)
vmax = max(image.get_array().max() for image in images)
norm = colors.Normalize(vmin=vmin, vmax=vmax)
for im in images:
    im.set_norm(norm)

fig.colorbar(images[0], ax=axs, orientation='horizontal', fraction=.1)

Bilder aktualisieren

Schließlich werden wir die Bilder aktualisieren, um auf Änderungen in der Norm anderer Bilder zu reagieren. Dies wird es uns ermöglichen, die Farbskala und die Farbpalette eines Bilds zu ändern und alle anderen entsprechend zu aktualisieren.

def update(changed_image):
    for im in images:
        if (changed_image.get_cmap()!= im.get_cmap()
                or changed_image.get_clim()!= im.get_clim()):
            im.set_cmap(changed_image.get_cmap())
            im.set_clim(changed_image.get_clim())

for im in images:
    im.callbacks.connect('changed', update)

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in der Matplotlib-Bibliothek von Python ein Satz von Bildern mit einer einzigen Farbpalette, Norm und Farbskala erstellt. Wir haben Daten generiert, Farbskalen eingestellt und Bilder aktualisiert, um auf Änderungen in der Norm anderer Bilder zu reagieren. Dies ist eine nützliche Technik zur Visualisierung mehrerer Datensätze mit derselben Farbskala und Farbpalette.