Ombrage personnalisé dans un tracé de surface 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 utiliser l'ombrage personnalisé dans un tracé de surface 3D à l'aide de Matplotlib en Python. L'ombrage est l'utilisation de lumière et d'ombre pour améliorer la perception de la profondeur et du relief dans un tracé 3D. En personnalisant l'ombrage, nous pouvons créer un tracé plus attrayant visuellement et plus informatif.

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 d'adresses pour accéder au carnet Jupyter pour la pratique.

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.

Charger et formater les données

Dans cette étape, nous allons charger et formater les données pour le tracé de surface 3D. Nous utiliserons un ensemble de données d'échantillonnage appelé "jacksboro_fault_dem.npz".

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cbook, cm
from matplotlib.colors import LightSource

## Charger et formater les données
dem = cbook.get_sample_data('jacksboro_fault_dem.npz')
z = dem['elevation']
nrows, ncols = z.shape
x = np.linspace(dem['xmin'], dem['xmax'], ncols)
y = np.linspace(dem['ymin'], dem['ymax'], nrows)
x, y = np.meshgrid(x, y)

region = np.s_[5:50, 5:50]
x, y, z = x[region], y[region], z[region]

Préparer le tracé

Dans cette étape, nous allons préparer le tracé pour le tracé de surface 3D. Nous utiliserons un objet LightSource pour personnaliser l'ombrage.

## Préparer le tracé
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))

ls = LightSource(270, 45)
## Pour utiliser un mode d'ombrage personnalisé, remplacer l'ombrage intégré et passer
## les couleurs rgb de la surface ombrée calculées à partir de "shade".
rgb = ls.shade(z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=rgb,
                       linewidth=0, antialiased=False, shade=False)

plt.show()

Personnaliser l'ombrage

Dans cette étape, nous allons personnaliser l'ombrage en remplaçant l'ombrage intégré et en passant les couleurs RGB de la surface ombrée calculées à partir de "shade".

## Préparer le tracé
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))

ls = LightSource(270, 45)
## Pour utiliser un mode d'ombrage personnalisé, remplacer l'ombrage intégré et passer
## les couleurs rgb de la surface ombrée calculées à partir de "shade".
rgb = ls.shade(z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=rgb,
                       linewidth=0, antialiased=False, shade=False)

plt.show()

Vérifier et réviser

Vérifiez le code et apportez les révisions nécessaires. Assurez-vous que le code est précis et bien commenté.

Sommaire

Dans ce laboratoire, nous avons appris à utiliser un ombrage personnalisé dans un tracé de surface 3D à l'aide de Matplotlib en Python. En personnalisant l'ombrage, nous avons pu créer un tracé plus visuellement attrayant et informatif.