¿Por qué pyplot.contour () requiere que Z sea una matriz 2D?

losmatplotlib.pyplot.contour() la función toma 3 matrices de entradaX, Y yZ.
Las matricesX yY especifique las coordenadas x e y de los puntos, mientrasZ especifica el valor correspondiente de la función de interés evaluada en los puntos.

Entiendo quenp.meshgrid() facilita la producción de matrices que sirven 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

Esto funciona bien Y convenientemente, esto también funciona bien:

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

Sin embargo, ¿por qué es elZ entradanecesario ser una matriz 2D?

¿Por qué no se permite algo como lo siguiente, a pesar de que especifica todos los mismos datos alineados adecuadamente?

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

Además, ¿cuáles son las semánticas cuandosolamente Z se especifica (sin el correspondienteX yY)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta