pcolormesh griglie e ombreggiatura #

axes.Axes.pcolormeshe pcoloravere alcune opzioni su come sono disposte le griglie e l'ombreggiatura tra i punti della griglia.

Generalmente, se Z ha forma (M, N) , la griglia X e Y possono essere specificate con forma (M+1, N+1) o (M, N) , a seconda dell'argomento della shadingparola chiave. Si noti che di seguito specifichiamo i vettori x come lunghezza N o N+1 e y come lunghezza M o M+1, e pcolormeshinternamente creiamo le matrici mesh X e Y dai vettori di input.

import matplotlib.pyplot as plt
import numpy as np

Ombreggiatura piatta #

La specifica della griglia con le assunzioni minime è shading='flat' e se la griglia è più grande dei dati in ogni dimensione, cioè ha forma (M+1, N+1) . In tal caso X e Y specificano gli angoli dei quadrilateri colorati con i valori in Z . Qui specifichiamo i bordi dei quadrilateri (3, 5) con X e Y che sono (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'")
ombreggiatura='piatto'

Ombreggiatura piatta, griglia della stessa forma #

Spesso, tuttavia, vengono forniti dati in cui X e Y corrispondono alla forma di Z . Sebbene ciò abbia senso per altri shadingtipi, non è più consentito quando shading='flat'(e solleverà un MatplotlibDeprecationWarning a partire da Matplotlib v3.3). Storicamente, Matplotlib ha lasciato cadere silenziosamente l'ultima riga e colonna di Z in questo caso, per corrispondere al comportamento di Matlab. Se questo comportamento è ancora desiderato, è sufficiente eliminare manualmente l'ultima riga e colonna:

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 stessa forma

Ombreggiatura più vicina, stessa griglia di forma #

Di solito, eliminare una riga e una colonna di dati non è ciò che l'utente intende quando crea X , Y e Z tutti della stessa forma. In questo caso, Matplotlib consente shading='nearest'e centra i quadrilateri colorati sui punti della griglia.

Se viene passata una griglia che non è della forma corretta viene shading='nearest' generato un errore.

fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='nearest', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='nearest'")
ombreggiatura='più vicino'

Ombreggiatura automatica #

È possibile che l'utente desideri che il codice scelga automaticamente quale utilizzare, in questo caso shading='auto'deciderà se utilizzare l'ombreggiatura "piatta" o "più vicina" in base alle forme di X , Y e 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)")
ombreggiatura='auto';  X, Y, Z: stessa forma (più vicina), shading='auto';  X, Y uno più grande di Z (piatto)

Ombreggiatura Gouraud #

È inoltre possibile specificare l' ombreggiatura Gouraud , in cui il colore nei quadrilateri viene interpolato linearmente tra i punti della griglia. Le forme di X , Y , Z devono essere le stesse.

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()
ombreggiatura='gouraud';  X, Y stessa forma di Z

Riferimenti

L'uso delle seguenti funzioni, metodi, classi e moduli è mostrato in questo esempio:

Tempo di esecuzione totale dello script: (0 minuti 2,324 secondi)

Galleria generata da Sphinx-Gallery