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 quandosó Z
é especificado (sem o correspondenteX
eY
)?