Hillary Cooper a écrit :
Hi-
I'm trying to make my PCA (princomp) colored. In my csv excel sheet, I have
the first column numbered according to the groupings I want to assign to the
PCA. I've played around with trying to set this first column as the color
vector, but haven't had any luck.
Any suggestions? Thanks,
Hillary
Hellor Hillary,
Here is some modifications of my own DIY code,
the thing to do is to test it and compare with the original biplot and
with what you want.
I hope it helps
Etienne
#my.data is your/my data
# I create some groups just for the test
groups = sample(1:3,N,replace=TRUE)
N = nrow(my.data)
acp=princomp(my.data,cor=TRUE)
# The original biplot for comparison
biplot(acp)
# Compute de min/max of new coordinates
xmin = min(acp$scores[,1])
xmax = max(acp$scores[,1])
ymin = min(acp$scores[,2])
ymax = max(acp$scores[,2])
plot(c(xmin,xmax),c(ymin,ymax),col="white", xlab="Comp 1", ylab="Comp 2")
# Plot the points with colors
text(acp$scores[,1],acp$scores[,2],1:N,col= groups)
title("PCA with colors")
abline(v=0,lty=2)
abline(h=0, lty=2)
# Compute and apply a re-scaling for the arrows of old components
# xl.min for min of xloadings,...
xl.min = min(0,min(acp$loadings[,1]))
xl.max = max(0,max(acp$loadings[,1]))
yl.min = min(0,min(acp$loadings[,2]))
yl.max = max(0,max(acp$loadings[,2]))
xl.scale = max(abs(xmax),abs(xmin))/max(abs(xl.max),abs(xl.min))*0.75
# 0.75 factor is just for leave some place for the text
yl.scale = max(abs(ymax),abs(ymin))/max(abs(yl.max),abs(yl.min))*0.75
#Draw old components
arrows(rep(0,100),rep(0,100),acp$loadings[,1]*xl.scale,
acp$loadings[,2]*yl.scale)
# Names of old components
text(acp$loadings[,1]*xl.scale*1.25, acp$loadings[,2]*yl.scale*1.25
,colnames(my.data))
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.