Pourquoi ne pyplot.contour() exiger de Z à un tableau 2D?

La matplotlib.pyplot.contour() fonction prend 3 entrée tableaux X, Y et Z.

Les tableaux X et Y spécifier les x et y des coordonnées des points, tandis que Z spécifie la valeur correspondante de la fonction d'intérêts évalués à les points.

Je comprends que np.meshgrid() permet de produire facilement des tableaux qui servent d'arguments à contour():

X = np.arange(0,5,0.01)
Y = np.arange(0,3,0.01)

X_grid, Y_grid = np.meshgrid(X,Y)
Z_grid = X_grid**2 + Y_grid**2

plt.contour(X_grid, Y_grid, Z_grid)  # Works fine

Cela fonctionne bien. Et idéalement, cela fonctionne très bien aussi:

plt.contour(X, Y, Z_grid)  # Works fine too

Cependant, pourquoi le Z entrée nécessaire être un 2D-tableau?

Pourquoi est quelque chose comme rejetée, même si elle précise tout de même des données alignées de manière appropriée?

plt.contour(X_grid.ravel(), Y_grid.ravel(), Z_grid.ravel())  # Disallowed

Aussi, ce sont la sémantique lorsque seulement Z est indiqué (sans le correspondant X et Y)?

linspace ne peut pas avoir un flotteur pour sa troisième argument (optionnel) dans votre exemple.
Merci, corrigé l'erreur.

OriginalL'auteur dhrumeel | 2017-02-04