Matplotlib Streudiagramme

MatplotlibBeginner
Jetzt üben

Einführung

Willkommen zum Lab über Matplotlib-Streudiagramme (Scatter Plots)! Streudiagramme sind ein grundlegendes Werkzeug in der Datenvisualisierung und werden verwendet, um Werte für typischerweise zwei Variablen für einen Datensatz anzuzeigen. Sie eignen sich hervorragend zur Beobachtung von Beziehungen oder Korrelationen zwischen Variablen.

In diesem Lab werden Sie die Matplotlib-Bibliothek in Python verwenden, um Streudiagramme zu erstellen. Sie lernen, wie Sie:

  • Datenarrays mit NumPy generieren.
  • Ein einfaches Streudiagramm mit plt.scatter() erstellen.
  • Das Erscheinungsbild des Diagramms anpassen, einschließlich Markergröße und Farbe.
  • Ein Gitter hinzufügen, um die Lesbarkeit zu verbessern.

Alle Ihre Arbeiten werden in der WebIDE-Umgebung durchgeführt. Sie schreiben Python-Code in einer Datei und führen ihn über das Terminal aus. Da diese Umgebung nicht interaktiv ist, speichern Sie Ihre Diagramme mit plt.savefig() in einer Bilddatei, anstatt sie mit plt.show() anzuzeigen.

Legen wir los!

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 90% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Generieren von x- und y-Datenarrays

In diesem Schritt erstellen Sie die Daten, die wir für unser Streudiagramm verwenden werden. Ein Streudiagramm benötigt mindestens zwei Datenarrays gleicher Länge: eines für die Koordinaten der x-Achse und eines für die Koordinaten der y-Achse. Wir werden die NumPy-Bibliothek verwenden, die ein Standard für numerische Operationen in Python ist.

Öffnen Sie zuerst die Datei main.py im Dateiexplorer auf der linken Seite der WebIDE. Hier werden Sie Ihren gesamten Code für dieses Lab schreiben.

Fügen Sie nun den folgenden Code zu main.py hinzu, um NumPy zu importieren und zwei einfache Datenarrays zu erstellen.

import numpy as np

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])

Lassen Sie uns den Code aufschlüsseln:

  • import numpy as np: Diese Zeile importiert die NumPy-Bibliothek und gibt ihr den üblichen Alias np.
  • x = np.array([...]): Dies erstellt ein NumPy-Array namens x, das unsere Datenpunkte für die horizontale Achse enthält.
  • y = np.array([...]): Dies erstellt ein NumPy-Array namens y, das unsere Datenpunkte für die vertikale Achse enthält.

Ihre Datei main.py sollte nun diesen Code enthalten. Im nächsten Schritt werden wir diese Daten verwenden, um unser erstes Diagramm zu erstellen.

Streudiagramm mit plt.scatter(x, y) erstellen

In diesem Schritt erstellen Sie ein einfaches Streudiagramm mit den von Ihnen generierten Daten. Wir werden das Modul matplotlib.pyplot verwenden, das eine einfache Schnittstelle zur Erstellung von Diagrammen bietet.

Zuerst müssen Sie matplotlib.pyplot importieren. Dann können Sie die Funktion plt.scatter() verwenden, um das Diagramm zu erstellen. Schließlich müssen Sie das Diagramm in einer Datei speichern. Wie in der Einleitung erwähnt, können wir plt.show() in dieser Umgebung nicht verwenden, um das Diagramm direkt anzuzeigen. Stattdessen verwenden wir plt.savefig(), um es als Bild zu speichern.

Aktualisieren Sie Ihre main.py-Datei mit dem folgenden Code. Fügen Sie die neuen Zeilen unterhalb des vorhandenen Codes hinzu.

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])

## Create scatter plot
plt.scatter(x, y)

## Save the plot to a file
plt.savefig('/home/labex/project/scatter_plot.png')

print("Scatter plot saved to scatter_plot.png")

Code-Erklärung:

  • import matplotlib.pyplot as plt: Importiert das Plotting-Modul und gibt ihm den Standard-Alias plt.
  • plt.scatter(x, y): Dies ist die Kernfunktion. Sie nimmt die Arrays x und y entgegen und plottet jedes Paar von (x, y)-Werten als Punkt.
  • plt.savefig('/home/labex/project/scatter_plot.png'): Diese Funktion speichert die aktuelle Abbildung in einer Datei namens scatter_plot.png in Ihrem ~/project-Verzeichnis.

Führen Sie nun Ihr Skript über das Terminal am unteren Rand der WebIDE aus:

python3 main.py

Sie sollten die folgende Ausgabe im Terminal sehen:

Scatter plot saved to scatter_plot.png

Eine neue Datei namens scatter_plot.png wird im Dateiexplorer auf der linken Seite erscheinen. Doppelklicken Sie darauf, um Ihr erstes Streudiagramm anzuzeigen!

Scatter plot

Markergröße mit dem Parameter s anpassen

In diesem Schritt lernen Sie, wie Sie die Größe der Marker (die Punkte) in Ihrem Streudiagramm anpassen können. Die Funktion plt.scatter() verfügt über einen optionalen Parameter s, der die Markergröße steuert.

Sie können eine einzelne Zahl angeben, um alle Marker gleich groß zu machen, oder Sie können ein Array von Zahlen (mit der gleichen Länge wie Ihre x- und y-Daten) angeben, um für jeden Marker eine eindeutige Größe festzulegen. Versuchen wir Letzteres, um das Diagramm interessanter zu gestalten.

Ändern Sie Ihre main.py-Datei. Wir erstellen ein sizes-Array und übergeben es an den s-Parameter in der Funktion plt.scatter().

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])

## Create scatter plot with custom sizes
plt.scatter(x, y, s=sizes)

## Save the plot to a file
plt.savefig('/home/labex/project/scatter_plot_sizes.png')

print("Scatter plot with custom sizes saved to scatter_plot_sizes.png")

Im aktualisierten Code haben wir ein sizes-Array hinzugefügt und den Aufruf von plt.scatter() zu plt.scatter(x, y, s=sizes) geändert. Nun wird jeder Punkt mit seiner entsprechenden Größe aus dem sizes-Array geplottet.

Führen Sie das Skript erneut aus, um die Änderungen zu sehen:

python3 main.py

Nachdem das Skript beendet ist, öffnen Sie erneut scatter_plot_sizes.png. Sie werden feststellen, dass die Marker nun unterschiedliche Größen haben, was das Diagramm visuell informativer macht.

Scatter plot with custom sizes

Markerfarbe mit dem Parameter c ändern

In diesem Schritt passen wir die Farbe der Marker an. Ähnlich wie bei der Größe können Sie die Farbe mit dem Parameter c in der Funktion plt.scatter() steuern.

Sie können einen einzelnen Farbnamen (z. B. 'red') übergeben, um alle Marker in der gleichen Farbe darzustellen, oder Sie können ein Array von Farben übergeben, um jedem Marker eine bestimmte Farbe zu geben. Weisen wir jedem Punkt eine eindeutige Farbe zu.

Aktualisieren Sie Ihre main.py-Datei, um ein colors-Array einzufügen und es an den Parameter c zu übergeben.

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])
colors = np.array(["red", "green", "blue", "yellow", "pink", "black", "orange", "purple", "beige", "brown", "gray", "cyan", "magenta"])

## Create scatter plot with custom sizes and colors
plt.scatter(x, y, s=sizes, c=colors)

## Save the plot to a file
plt.savefig('/home/labex/project/scatter_plot_colors.png')

print("Scatter plot with custom colors saved to scatter_plot_colors.png")

Wir haben nun ein colors-Array mit Farbnamen hinzugefügt und den Funktionsaufruf zu plt.scatter(x, y, s=sizes, c=colors) geändert.

Führen Sie das Skript im Terminal aus:

python3 main.py

Öffnen Sie scatter_plot_colors.png noch einmal. Sie sehen ein farbenfrohes Streudiagramm, bei dem jeder Punkt eine andere Größe und Farbe hat, wie in unseren Arrays definiert.

Scatter plot with custom colors

Raster mit plt.grid() hinzufügen

In diesem letzten Schritt fügen wir Ihrem Streudiagramm ein Gitter hinzu. Ein Gitter kann das Ablesen der Werte der Datenpunkte auf den Achsen erleichtern.

Das Hinzufügen eines Gitters in Matplotlib ist sehr einfach. Sie müssen lediglich die Funktion plt.grid() aufrufen, bevor Sie das Diagramm speichern. Standardmäßig zeigt plt.grid(True) das Gitter an.

Fügen wir dies unserem Skript hinzu. Ändern Sie main.py, um den Aufruf von plt.grid() einzufügen.

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])
colors = np.array(["red", "green", "blue", "yellow", "pink", "black", "orange", "purple", "beige", "brown", "gray", "cyan", "magenta"])

## Create scatter plot
plt.scatter(x, y, s=sizes, c=colors)

## Add a grid
plt.grid(True)

## Save the plot to a file
plt.savefig('/home/labex/project/scatter_plot_grid.png')

print("Scatter plot with grid saved to scatter_plot_grid.png")

Wir haben plt.grid(True) direkt vor plt.savefig() hinzugefügt. Dies weist Matplotlib an, ein Gitter im Diagramm zu zeichnen.

Führen Sie die endgültige Version Ihres Skripts aus:

python3 main.py

Sehen Sie sich nun das Bild scatter_plot_grid.png an. Ihr Diagramm sollte nun ein Gitter im Hintergrund haben und damit unser angepasstes Streudiagramm vervollständigen.

Scatter plot with grid

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss des Labs! Sie haben erfolgreich die Grundlagen der Erstellung und Anpassung von Streudiagrammen mit Matplotlib gelernt.

In diesem Lab haben Sie Folgendes geübt:

  • Generieren von Daten für die Darstellung mit NumPy.
  • Erstellen eines einfachen Streudiagramms mit plt.scatter().
  • Anpassen der Markergrößen mit dem Parameter s.
  • Ändern der Markerfarben mit dem Parameter c.
  • Hinzufügen eines Gitters zum Diagramm mit plt.grid().
  • Speichern Ihrer Diagramme in einer Datei mit plt.savefig().

Dies sind wesentliche Fähigkeiten für die Datenvisualisierung in Python. Sie können nun informative und visuell ansprechende Streudiagramme erstellen, um Beziehungen in Ihren Daten zu untersuchen. Um Ihr Wissen zu vertiefen, könnten Sie Titel und Achsenbeschriftungen hinzufügen, verschiedene Markerstile verwenden oder Colormaps für fortgeschrittenere Visualisierungen anwenden.