grilles et ombrage pcolormesh #

axes.Axes.pcolormeshet pcoloront quelques options pour la disposition des grilles et l'ombrage entre les points de la grille.

Généralement, si Z a la forme (M, N) alors la grille X et Y peuvent être spécifiées avec la forme (M+1, N+1) ou (M, N) , selon l'argument de l' shadingargument mot-clé. Notez que ci-dessous, nous spécifions les vecteurs x comme longueur N ou N + 1 et y comme longueur M ou M + 1, et pcolormeshcrée en interne les matrices de maillage X et Y à partir des vecteurs d'entrée.

import matplotlib.pyplot as plt
import numpy as np

Ombrage plat #

La spécification de grille avec le moins d'hypothèses est shading='flat' et si la grille est une plus grande que les données dans chaque dimension, c'est-à-dire a la forme (M+1, N+1) . Dans ce cas, X et Y spécifient les coins des quadrilatères qui sont colorés avec les valeurs de Z . Ici, nous spécifions les arêtes des quadrilatères (3, 5) avec X et Y qui sont (4, 6) .

nrows = 3
ncols = 5
Z = np.arange(nrows * ncols).reshape(nrows, ncols)
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)

fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='flat', vmin=Z.min(), vmax=Z.max())


def _annotate(ax, x, y, title):
    # this all gets repeated below:
    X, Y = np.meshgrid(x, y)
    ax.plot(X.flat, Y.flat, 'o', color='m')
    ax.set_xlim(-0.7, 5.2)
    ax.set_ylim(-0.7, 3.2)
    ax.set_title(title)

_annotate(ax, x, y, "shading='flat'")
ombrage='plat'

Ombrage plat, grille de même forme #

Cependant, les données sont souvent fournies là où X et Y correspondent à la forme de Z . Bien que cela ait du sens pour les autres shadingtypes, cela n'est plus autorisé quand shading='flat'(et déclenchera un MatplotlibDeprecationWarning à partir de Matplotlib v3.3). Historiquement, Matplotlib supprimait silencieusement la dernière ligne et la dernière colonne de Z dans ce cas, pour correspondre au comportement de Matlab. Si ce comportement est toujours souhaité, supprimez simplement la dernière ligne et colonne manuellement :

x = np.arange(ncols)  # note *not* ncols + 1 as before
y = np.arange(nrows)
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z[:-1, :-1], shading='flat', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='flat': X, Y, C same shape")
shading='flat' : X, Y, C même forme

Ombrage le plus proche, grille de même forme #

Habituellement, supprimer une ligne et une colonne de données n'est pas ce que l'utilisateur veut dire lorsqu'il donne à X , Y et Z la même forme. Pour ce cas, Matplotlib autorise shading='nearest'et centre les quadrilatères colorés sur les points de la grille.

Si une grille qui n'a pas la forme correcte est passée avec shading='nearest' une erreur est levée.

fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='nearest', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='nearest'")
ombrage='le plus proche'

Ombrage automatique #

Il est possible que l'utilisateur souhaite que le code choisisse automatiquement lequel utiliser, dans ce cas shading='auto'il décidera d'utiliser un ombrage "plat" ou "le plus proche" en fonction des formes de X , Y et Z .

fig, axs = plt.subplots(2, 1, constrained_layout=True)
ax = axs[0]
x = np.arange(ncols)
y = np.arange(nrows)
ax.pcolormesh(x, y, Z, shading='auto', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='auto'; X, Y, Z: same shape (nearest)")

ax = axs[1]
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
ax.pcolormesh(x, y, Z, shading='auto', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='auto'; X, Y one larger than Z (flat)")
ombrage='auto';  X, Y, Z : même forme (la plus proche), shading='auto' ;  X, Y un plus grand que Z (plat)

Ombrage de Gouraud #

L'ombrage Gouraud peut également être spécifié, où la couleur dans les quadrilatères est interpolée linéairement entre les points de la grille. Les formes de X , Y , Z doivent être identiques.

fig, ax = plt.subplots(constrained_layout=True)
x = np.arange(ncols)
y = np.arange(nrows)
ax.pcolormesh(x, y, Z, shading='gouraud', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='gouraud'; X, Y same shape as Z")

plt.show()
shading='gouraud';  X, Y même forme que Z

Références

L'utilisation des fonctions, méthodes, classes et modules suivants est illustrée dans cet exemple :

Durée totale d'exécution du script : (0 minutes 2,324 secondes)

Galerie générée par Sphinx-Gallery