Mappage des propriétés des marqueurs aux données multivariées

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à utiliser différentes propriétés des marqueurs pour tracer des jeux de données multivariés à l'aide de la bibliothèque Matplotlib de Python. Plus précisément, vous allez apprendre à représenter un lancer de baseball réussi sous forme d'un visage souriant avec la taille du marqueur associée à la compétence du lanceur, la rotation du marqueur à l'angle de décollage et la poussée associée à la couleur du marqueur.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez sur le coin supérieur gauche pour passer à l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

Dans cette étape, vous allez importer les bibliothèques nécessaires pour ce laboratoire. Plus précisément, vous allez importer Matplotlib, Numpy et divers modules de Matplotlib tels que MarkerStyle, TextPath et 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

Définir les symboles de réussite

Dans cette étape, vous allez définir les trois symboles de réussite qui seront utilisés pour représenter le succès d'un lancer de baseball. Plus précisément, vous allez définir un visage souriant pour un lancer réussi, un visage neutre pour un lancer partiellement réussi et un visage triste pour un lancer raté.

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

Générer des données aléatoires

Dans cette étape, vous allez générer des données aléatoires pour la compétence du lanceur, l'angle de décollage, la poussée, le succès et la position. Plus précisément, vous allez générer 25 points de données pour chaque variable, sauf pour la position, qui aura 2 coordonnées pour chaque point de données.

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)

Définir la carte de couleurs

Dans cette étape, vous allez définir la carte de couleurs qui sera utilisée pour mapper la poussée du lancer à la couleur du marqueur. Plus précisément, vous allez utiliser la carte de couleurs "plasma" de Matplotlib.

cmap = plt.colormaps["plasma"]

Créer un graphique

Dans cette étape, vous allez créer le graphique en utilisant les données aléatoires générées précédemment. Plus précisément, vous allez tracer chaque point de données sous forme d'un marqueur avec le symbole de réussite déterminé par la variable de réussite, la taille déterminée par la variable de compétence, la rotation déterminée par la variable d'angle de décollage et la couleur déterminée par la variable de poussée.

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]")

Afficher le graphique

Dans cette étape, vous allez afficher le graphique à l'aide de la fonction show() de Matplotlib.

plt.show()

Sommaire

Dans ce laboratoire, vous avez appris à utiliser différentes propriétés des marqueurs pour tracer des jeux de données multivariées à l'aide de la bibliothèque Matplotlib de Python. Plus précisément, vous avez appris à représenter un lancer de baseball réussi sous forme d'un visage souriant avec la taille du marqueur mappée à la compétence du lanceur, la rotation du marqueur à l'angle de décollage et la poussée à la couleur du marqueur. En suivant les étapes décrites dans ce laboratoire, vous pouvez créer des graphiques similaires pour vos propres jeux de données multivariées.