smass=pd.read_csv('SMASS_ONC_filter.csv')
smass2=smass[smass.smass=='smass2']
smass2_c=smass2[(smass2.tax_bus=='C')|(smass2.tax_bd=='C')|(smass2.tax_bus=='Cb')|(smass2.tax_bd=='Cb')|(smass2.tax_bus=='B')|(smass2.tax_bd=='B')|(smass2.tax_bus=='Ch')|(smass2.tax_bd=='Ch')
|(smass2.tax_bus=='Cgh')|(smass2.tax_bd=='Cgh')|(smass2.tax_bus=='Cg')|(smass2.tax_bd=='Cg')]
def get_rotation_matrix(theta):
rad=theta/180.*np.pi
rot = np.array([[np.cos(rad), -np.sin(rad)],
[np.sin(rad), np.cos(rad)]])
return rot
plt.figure(figsize=(10,10))
ax=plt.subplot()
ax.patch.set_alpha(0.)
plt.grid()
size=50
a=0.7
plt.scatter(X_pca[(smass2_c.tax_bus=='C')|(smass2_c.tax_bd=='C'),1],X_pca[(smass2_c.tax_bus=='C')|(smass2_c.tax_bd=='C'),2],c='r',label='C',s=size,alpha=a)
plt.scatter(X_pca[(smass2_c.tax_bus=='Ch')|(smass2_c.tax_bd=='Ch'),1],X_pca[(smass2_c.tax_bus=='Ch')|(smass2_c.tax_bd=='Ch'),2],c='gold',label='Ch',s=size,alpha=a)
plt.scatter(X_pca[(smass2_c.tax_bus=='Cg')|(smass2_c.tax_bd=='Cg'),1],X_pca[(smass2_c.tax_bus=='Cg')|(smass2_c.tax_bd=='Cg'),2],c='darkgreen',label='Cg',s=size,alpha=a)
plt.scatter(X_pca[(smass2_c.tax_bus=='Cgh')|(smass2_c.tax_bd=='Cgh'),1],X_pca[(smass2_c.tax_bus=='Cgh')|(smass2_c.tax_bd=='Cgh'),2],c='lime',label='Cgh',s=size,alpha=a)
plt.scatter(X_pca[(smass2_c.tax_bus=='B')|(smass2_c.tax_bd=='B'),1],X_pca[(smass2_c.tax_bus=='B')|(smass2_c.tax_bd=='B'),2],c='b',label='B',s=size,alpha=a)
plt.scatter(X_pca[(smass2_c.tax_bus=='Cb')|(smass2_c.tax_bd=='Cb'),1],X_pca[(smass2_c.tax_bus=='Cb')|(smass2_c.tax_bd=='Cb'),2],c='c',label='c',s=size,alpha=a)
plt.legend()
plt.title('PCA: b to x',fontsize=18)
plt.ylabel('C-complex PC3',fontsize=18)
plt.xlabel('C-complex PC2',fontsize=18)
x=[-1,1]
m = np.tan(35/180.*np.pi)
y=np.array(x)*(m)
xy=np.dot(get_rotation_matrix(90),[x,y])
plt.plot(x,y,ls='dashed')
plt.plot(xy[0],xy[1],label='histogram x')
plt.legend(loc=4, fontsize=14)
plt.ylim(0.06,-0.06)
plt.xlim(0.1,-0.1)
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
#plt.axis('equal')
plt.show()
#//// rotate data
rot=get_rotation_matrix(90-35)
dataC=[X_pca[(smass2_c.tax_bus=='C')|(smass2_c.tax_bd=='C'),1],X_pca[(smass2_c.tax_bus=='C')|(smass2_c.tax_bd=='C'),2]]
dataCh=[X_pca[(smass2_c.tax_bus=='Ch')|(smass2_c.tax_bd=='Ch'),1],X_pca[(smass2_c.tax_bus=='Ch')|(smass2_c.tax_bd=='Ch'),2]]
dataCg=[X_pca[(smass2_c.tax_bus=='Cg')|(smass2_c.tax_bd=='Cg'),1],X_pca[(smass2_c.tax_bus=='Cg')|(smass2_c.tax_bd=='Cg'),2]]
dataCgh=[X_pca[(smass2_c.tax_bus=='Cgh')|(smass2_c.tax_bd=='Cgh'),1],X_pca[(smass2_c.tax_bus=='Cgh')|(smass2_c.tax_bd=='Cgh'),2]]
dataB=[X_pca[(smass2_c.tax_bus=='B')|(smass2_c.tax_bd=='B'),1],X_pca[(smass2_c.tax_bus=='B')|(smass2_c.tax_bd=='B'),2]]
dataCb=[X_pca[(smass2_c.tax_bus=='Cb')|(smass2_c.tax_bd=='Cb'),1],X_pca[(smass2_c.tax_bus=='Cb')|(smass2_c.tax_bd=='Cb'),2]]
rotxC=np.dot(rot,dataC)
rotxCh=np.dot(rot,dataCh)
rotxCg=np.dot(rot,dataCg)
rotxCgh=np.dot(rot,dataCgh)
rotxB=np.dot(rot,dataB)
rotxCb=np.dot(rot,dataCb)
rotxXY=np.dot(rot,[x,y])
rotxxy=np.dot(rot,xy)
data=rotxCb[0]
for i in range(0,len(data)):
x=data[i]
histC, bins0=np.histogram(rotxC[0], bins=50,range=(-0.08,0.08))
histCh, bins=np.histogram(rotxCh[0], bins=50,range=(-0.08,0.08))
histCg, bins=np.histogram(rotxCg[0], bins=50,range=(-0.08,0.08))
histCgh, bins=np.histogram(rotxCgh[0], bins=50,range=(-0.08,0.08))
histB, bins=np.histogram(rotxB[0], bins=50,range=(-0.08,0.08))
histCb, bins=np.histogram(rotxCb[0], bins=50,range=(-0.08,0.08))
plt.figure(figsize=(8,6))
ax=plt.subplot()
label=['C','Ch','Cg','Cgh','B','Cb']
color=['r','yellow','darkgreen','lime','b','lightblue']
hatchlist = ['/','/',None,None,None,None]
plt.hist([rotxC[0],rotxCh[0],rotxCg[0],rotxCgh[0],rotxB[0],rotxCb[0]],stacked=True,bins=50,label=label,color=color,ec='black',hatch='/')
ax.patch.set_alpha(0.)
plt.title('histogram')
plt.ylabel('',fontsize=12)
plt.xlabel('P axis',fontsize=12)
plt.xlim(0.06,-0.06)
plt.legend()
plt.show()