Données 2D avec Matplotlib sur un tracé 3D

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

Ce laboratoire montre comment tracer des données 2D sur des axes sélectionnés d'un tracé 3D à l'aide du mot clé zdir de ax.plot. La bibliothèque matplotlib en Python est utilisée pour créer le tracé 3D.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers 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

La première étape consiste à importer les bibliothèques nécessaires. Nous avons besoin de matplotlib et de numpy pour tracer le graphique 3D.

import matplotlib.pyplot as plt
import numpy as np

Créer un tracé 3D

La deuxième étape consiste à créer un tracé 3D à l'aide de ax = plt.figure().add_subplot(projection='3d').

ax = plt.figure().add_subplot(projection='3d')

Tracer des données 2D sur le tracé 3D

La troisième étape consiste à tracer des données 2D sur le tracé 3D à l'aide de ax.plot et ax.scatter. La fonction ax.plot trace une courbe sinusoidale en utilisant les axes x et y. La fonction ax.scatter trace des données de nuage de points sur les axes x et z.

## Trace une courbe sinusoidale en utilisant les axes x et y.
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='courbe dans (x, y)')

## Trace des données de nuage de points (20 points 2D par couleur) sur les axes x et z.
colors = ('r', 'g', 'b', 'k')

## Fixation de l'état aléatoire pour la reproductibilité
np.random.seed(19680801)

x = np.random.sample(20 * len(colors))
y = np.random.sample(20 * len(colors))
c_list = []
for c in colors:
    c_list.extend([c] * 20)
## En utilisant zdir='y', la valeur y de ces points est fixée à la valeur zs 0
## et les points (x, y) sont tracés sur les axes x et z.
ax.scatter(x, y, zs=0, zdir='y', c=c_list, label='points dans (x, z)')

Personnaliser le tracé

La quatrième étape consiste à personnaliser le tracé en ajoutant une légende, en définissant les limites et les étiquettes des axes, et en changeant l'angle de vue.

## Créer une légende, définir les limites et les étiquettes des axes
ax.legend()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_zlim(0, 1)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

## Personnaliser l'angle de vue pour qu'il soit plus facile de voir que les points de dispersion
## se trouvent sur le plan y = 0
ax.view_init(elev=20., azim=-35, roll=0)

plt.show()

Consulter le tracé

La dernière étape consiste à consulter le tracé 3D en exécutant le code.

Sommaire

Dans ce laboratoire, nous avons appris à tracer des données 2D sur des axes sélectionnés d'un tracé 3D à l'aide du mot clé zdir de ax.plot. Nous avons également appris à personnaliser le tracé en ajoutant une légende, en définissant les limites et les étiquettes des axes, et en changeant l'angle de vue.