Zuordnung von Marker-Eigenschaften zu multivariaten Daten

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 Lab lernst du, wie du verschiedene Eigenschaften von Markern verwendest, um multivariate Datensätze mit der Matplotlib-Bibliothek in Python zu visualisieren. Insbesondere lernst du, wie du einen erfolgreichen Baseballwurf als ein Smiley darstellst, wobei die Größe des Markers der Fähigkeit des Wurfers zugeordnet ist, die Rotation des Markers zum Abflugwinkel und die Kraft zum Markerfarbe.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicke in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal musst du einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn du während des Lernens Probleme stellst, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Bibliotheken importieren

In diesem Schritt importierst du die erforderlichen Bibliotheken für dieses Lab. Insbesondere importierst du Matplotlib, Numpy und verschiedene Module aus Matplotlib, wie MarkerStyle, TextPath und Affine2D.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.colors import Normalize
from matplotlib.markers import MarkerStyle
from matplotlib.text import TextPath
from matplotlib.transforms import Affine2D

Erfolgssymbole definieren

In diesem Schritt definierst du die drei Erfolgssymbole, die verwendet werden, um den Erfolg eines Baseballwurfs darzustellen. Insbesondere definierst du ein Smiley für einen erfolgreichen Wurf, ein neutrales Gesicht für einen teilweise erfolgreichen Wurf und ein trauriges Gesicht für einen erfolglosen Wurf.

SUCCESS_SYMBOLS = [
    TextPath((0, 0), "☹"),
    TextPath((0, 0), "😒"),
    TextPath((0, 0), "☺"),
]

Zufällige Daten generieren

In diesem Schritt generierst du zufällige Daten für die Fähigkeit des Wurfers, den Abflugwinkel, die Kraft, den Erfolg und die Position. Insbesondere generierst du 25 Datenpunkte für jede Variable, außer für die Position, die für jeden Datenpunkt 2 Koordinaten haben wird.

N = 25
np.random.seed(42)
skills = np.random.uniform(5, 80, size=N) * 0.1 + 5
takeoff_angles = np.random.normal(0, 90, N)
thrusts = np.random.uniform(size=N)
successful = np.random.randint(0, 3, size=N)
positions = np.random.normal(size=(N, 2)) * 5
data = zip(skills, takeoff_angles, thrusts, successful, positions)

Farbverlauf definieren

In diesem Schritt definierst du den Farbverlauf, der verwendet werden soll, um die Kraft des Wurfs auf die Farbe des Markers abzubilden. Insbesondere verwendest du den Farbverlauf "plasma" aus Matplotlib.

cmap = plt.colormaps["plasma"]

Diagramm erstellen

In diesem Schritt erstellst du das Diagramm mit den zuvor generierten zufälligen Daten. Insbesondere zeichnest du jeden Datenpunkt als Marker mit dem Erfolgssymbol, das durch die Variable "erfolg" bestimmt wird, der Größe, die durch die Variable "fähigkeit" bestimmt wird, der Rotation, die durch die Variable "Abflugwinkel" bestimmt wird, und der Farbe, die durch die Variable "Kraft" bestimmt wird.

fig, ax = plt.subplots()
fig.suptitle("Throwing success", size=14)
for skill, takeoff, thrust, mood, pos in data:
    t = Affine2D().scale(skill).rotate_deg(takeoff)
    m = MarkerStyle(SUCCESS_SYMBOLS[mood], transform=t)
    ax.plot(pos[0], pos[1], marker=m, color=cmap(thrust))
fig.colorbar(plt.cm.ScalarMappable(norm=Normalize(0, 1), cmap=cmap),
             ax=ax, label="Normalized Thrust [a.u.]")
ax.set_xlabel("X position [m]")
ax.set_ylabel("Y position [m]")

Diagramm anzeigen

In diesem Schritt zeigst du das Diagramm mit der show()-Funktion von Matplotlib an.

plt.show()

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie verschiedene Eigenschaften von Markern verwenden, um multivariate Datensätze mit der Matplotlib-Bibliothek in Python zu plotten. Insbesondere haben Sie gelernt, wie ein erfolgreicher Baseballwurf als Smiley dargestellt werden kann, wobei die Größe des Markers auf die Fähigkeit des Wurfers abgebildet wird, die Rotation des Markers auf den Abflugwinkel und die Kraft auf die Markerfarbe. Indem Sie den in diesem Lab beschriebenen Schritten folgen, können Sie ähnliche Plots für Ihre eigenen multivariate Datensätze erstellen.