1
resposta

Erro no contourf

Boa noite, conferi várias vezes se estava igual ao algoritmo do professor, mas mesmo assim, ele está dando esse erro na linha:

plt.contourf(xx, yy, Z, alpha=0.3)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-92-7a7a51f3ad4a> in <module>()
      1 import matplotlib.pyplot as plt
      2 
----> 3 plt.contourf(xx, yy, Z, alpha=0.3)
      4 plt.scatter(teste_x.horas_esperadas, teste_x.preco, c=teste_y, s=1)

6 frames
/usr/local/lib/python3.7/dist-packages/matplotlib/contour.py in _check_xyz(self, args, kwargs)
   1506 
   1507         if z.ndim != 2:
-> 1508             raise TypeError(f"Input z must be 2D, not {z.ndim}D")
   1509         if z.shape[0] < 2 or z.shape[1] < 2:
   1510             raise TypeError(f"Input z must be at least a (2, 2) shaped array, "

TypeError: Input z must be 2D, not 1D
1 resposta

Oi, Whentony! Tudo bem com você?

Pelo seu erro, entendi que sua matriz Z está em formato 1D, mas deveria estar em formato 2D. Desse modo, peço que você verifique que o seguinte código referente a montagem de Z está igual a sua aplicação:

Z = modelo.predict(pontos)
Z = Z.reshape(xx.shape)

Caso esteja do mesmo modo, execute o seguinte código:

print(Z.ndim)

Esse código irá informar a quantidade de dimensões que o array Z tem, se ao executar isso o retorno for diferente de 2, então possívelmente pode ter alguma alteração no seu código quanto ao array xx ou ao pontos.

Mesmo assim, se o erro persistir você pode me retornar aqui com o seu código para eu dar uma olhadinha?

Fico no aguardo do seu retorno!