Error de contorno de Mathplotlib: la entrada z debe ser una matriz 2D
Ya he probado con meshgrid pero no funciona, realmente no puedo encontrar el problema ... E = np.zeros (2500) es una matriz, así que no puedo encontrar lo que está mal ... Gracias de antemano
import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mkgrid2d import *
W1 = np.linspace(-1.0,3.0,num = 50)
W0 = np.linspace(-2.0,4.0,num = 50)
w11 = 1.00
w00=1.0
w = np.array([[w11],[w00]],dtype=float)
mew = 0
sigma = np.sqrt(2)
Npts=50;rd.seed(1)
x1=rd.rand(1,Npts)*10.-5.0 #Npts uniformemente distribuídos
r = np.random.normal(mew, sigma, 50)*2.-1.0#ruído gaussiano distribuído
X = np.vstack((x1,np.ones((1,x1.shape[1]))))
X = X.astype('float') #converter para float
N=Npts
y = np.dot(w.T,X) + r
E= np.zeros(2500)
"E" será la Z para Contour
count = 0
for i in range (len(W1)):
for j in range (len (W0)):
w1 = np.array([W1[i],W0[j]])
yn = np.dot(w1.T,X)
E[count] = (1./50)*(np.sum((y-yn)**2))
count +=1
plt.figure()
CS = plt.contour(W1,W0,E)
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')