Introduction
Ce laboratoire fournit un guide étape par étape sur la manière d'utiliser la classe NonUniformImage de la bibliothèque Matplotlib de Python. NonUniformImage permet aux utilisateurs de tracer des images avec des positions de pixels non uniformes.
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
Avant de créer une NonUniformImage, nous devons importer les bibliothèques nécessaires. Dans cet exemple, nous utiliserons numpy et matplotlib.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
from matplotlib.image import NonUniformImage
Création de tableaux linéaires et non linéaires
Nous devons créer deux tableaux, l'un avec des valeurs linéaires et l'autre avec des valeurs non linéaires. Ces tableaux seront utilisés pour créer notre NonUniformImage.
## Tableau linéaire x pour les centres des cellules :
x = np.linspace(-4, 4, 9)
## Tableau x hautement non linéaire :
x2 = x**3
y = np.linspace(-4, 4, 9)
z = np.sqrt(x[np.newaxis, :]**2 + y[:, np.newaxis]**2)
Création de sous-graphiques et de NonUniformImage
Maintenant, nous créons des sous-graphiques et ajoutons la NonUniformImage à chacun d'eux. Nous allons créer quatre sous-graphiques, deux avec une interpolation 'nearest' et deux avec une interpolation 'bilinear'. L'argument clé-mot interpolation définit le type d'interpolation utilisé pour afficher l'image.
## Création de sous-graphiques
fig, axs = plt.subplots(nrows=2, ncols=2, layout='constrained')
fig.suptitle('Classe NonUniformImage', fontsize='large')
## Interpolation nearest
ax = axs[0, 0]
im = NonUniformImage(ax, interpolation='nearest', extent=(-4, 4, -4, 4), cmap=cm.Purples)
im.set_data(x, y, z)
ax.add_image(im)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_title('nearest')
ax = axs[0, 1]
im = NonUniformImage(ax, interpolation='nearest', extent=(-64, 64, -4, 4), cmap=cm.Purples)
im.set_data(x2, y, z)
ax.add_image(im)
ax.set_xlim(-64, 64)
ax.set_ylim(-4, 4)
ax.set_title('nearest')
## Interpolation bilinéaire
ax = axs[1, 0]
im = NonUniformImage(ax, interpolation='bilinear', extent=(-4, 4, -4, 4), cmap=cm.Purples)
im.set_data(x, y, z)
ax.add_image(im)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_title('bilinear')
ax = axs[1, 1]
im = NonUniformImage(ax, interpolation='bilinear', extent=(-64, 64, -4, 4), cmap=cm.Purples)
im.set_data(x2, y, z)
ax.add_image(im)
ax.set_xlim(-64, 64)
ax.set_ylim(-4, 4)
ax.set_title('bilinear')
plt.show()
Interprétation des résultats
Les sous-graphiques afficheront deux types différents d'interpolation, 'nearest' et 'bilinear'. L'interpolation 'nearest' affichera la valeur du pixel du voisin le plus proche, tandis que l'interpolation 'bilinear' affichera la moyenne pondérée des quatre plus proches voisins.
Sommaire
NonUniformImage est un outil pratique pour tracer des images avec des positions de pixels non uniformes. Ce laboratoire a fourni un guide étape par étape sur la manière d'utiliser NonUniformImage dans la bibliothèque Matplotlib de Python, y compris l'importation des bibliothèques nécessaires, la création de tableaux linéaires et non linéaires, la création de sous-graphiques et de NonUniformImage, et l'interprétation des résultats.