Por que pyplot.contour () requer que Z seja uma matriz 2D?

omatplotlib.pyplot.contour() função leva 3 matrizes de entradaX, Y eZ.
As matrizesX eY especifique as coordenadas x e y dos pontos, enquantoZ especifica o valor correspondente da função de interesse avaliada nos pontos.

Eu entendi aquilonp.meshgrid() facilita a produção de matrizes que servem como argumentos paracontour():

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

Isso funciona bem. E, convenientemente, isso também funciona bem:

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

No entanto, por que oZ entradarequeridos ser uma matriz 2D?

Por que algo como o seguinte não é permitido, mesmo que especifique todos os mesmos dados alinhados adequadamente?

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

Além disso, quais são as semânticas quando Z é especificado (sem o correspondenteX eY)?

questionAnswers(4)

yourAnswerToTheQuestion