for i,l in enumerate(labels):
        plt.scatter(xtPCA[labelsTrain==l,0],xtPCA[labelsTrain==l,1],alpha=0.5,c=classColors[i,:])

    plt.title('Projected data over the components')
    plt.xlim([-4,4])
    plt.ylim([-4,4])
    plt.show()

if (0):
    
    #%% PARTIAL LEAST SQUARES
    #%% PLS SVD
    nComponents = np.arange(1,nClasses+1)
    plsSvdScores = np.zeros((5,np.alen(nComponents)))
    for i,n in enumerate(nComponents):
        plssvd = PLSSVD(n_components=n)
        plssvd.fit(Xtrain,Ytrain)
        XtrainT = plssvd.transform(Xtrain)
        XtestT = plssvd.transform(Xtest)
        plsSvdScores[:,i] = util.classify(XtrainT,XtestT,labelsTrain,labelsTest)
        
    plssvd = PLSSVD(n_components=2)
    xt,yt = plssvd.fit_transform(Xtrain,Ytrain)
    fig = plt.figure()
    util.plotData(fig,xt,labelsTrain,classColors)
    plt.title('First 2 components of projected data')
    
    #%% Plot accuracies for PLSSVD 
    plt.figure()
    for i in range (5):
        plt.plot(nComponents,plsSvdScores[i,:],lw=3)