1
resposta

Erro ao plotar grafico

Estou seguindo passo a passo, porem quando chega na parte de colocar uma cor no fundo do grafico dá erro.

import matplotlib.pyplot as plt


plt.contourf(xx, yy, Z, alpha=0.3)
plt.scatter(teste_x.horas_esperadas, teste_x.preco, c=teste_y, s=1)
___________________________________________________________________________________
TypeError                                 Traceback (most recent call last)
<ipython-input-42-2ff51d0ee770> in <module>
      2 
      3 
----> 4 plt.contourf(xx, yy, Z, alpha=0.3)
      5 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

Olá, Adma! Tudo bom?

O erro no código indica que a variável Z, utilizada no comando plt.contourf(xx, yy, Z, alpha=0.3), está somente com uma dimensão, enquanto ela deveria ser uma tabela (100,100). O procedimento que trabalha com a manipulação correta é realizado no minuto 07:57, na aula "03. Um projeto de baixa dimensionalidade e o baseline", na atividade "Curvas de decisão".

Se o erro persistir, garanta que todo o código foi executado desde o início e utilize os comandos:

print(Z.shape)
print(Z)

A resposta esperada é semelhante a:

(100, 100)
[[1 1 1 ... 0 0 0]
 [1 1 1 ... 0 0 0]
 [1 1 1 ... 0 0 0]
 ...
 [1 1 1 ... 1 1 1]
 [1 1 1 ... 1 1 1]
 [1 1 1 ... 1 1 1]]

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software