¿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
)?