Hello,? A colleague of mine prepared a PCA plot of my data and I have no clue how he did it. My original data set contains 15 variables and 64 observations. I have been trying to figure out how he did it on my own, and I have asked but he's swamped so his response is taking longer than usual. Anywho, the plot is simply of PC1 vs. PC2 and in the area of the plot there are just the variable names aligned with values I'm guessing are the loadings (?) I have been searching around and I do not think that this was done via biplot. I am also not sure what is normally plotted on a PCA plot of this type (e.g. loadings, scores, sdevs -- no clue). ?Again, the 15 variable names (var1, var2, var3 etc) are all that is contained in this plot, aligned with their respective values projected onto the first 2 PCs.? Any idea on how to generate such a plot based on this description? [[alternative HTML version deleted]]
Your description is obscure but the following may get you started. The function prcomp() returns a list in which the matrix x contains the rotated values of your input. Assuming that your "variable names" are the rownames of your input, you can plot them with text(). Something like (untested): myPCA <- prcomp(someData) plot(myPCA$x[,1], myPCA$x[,2], type = "n") text(myPCA$x[,1], myPCA$x[,2], rownames(someData)) B. On Nov 30, 2015, at 8:56 AM, debra ragland via R-help <r-help at r-project.org> wrote:> Hello, > > A colleague of mine prepared a PCA plot of my data and I have no clue how he did it. My original data set contains 15 variables and 64 observations. I have been trying to figure out how he did it on my own, and I have asked but he's swamped so his response is taking longer than usual. Anywho, the plot is simply of PC1 vs. PC2 and in the area of the plot there are just the variable names aligned with values I'm guessing are the loadings (?) I have been searching around and I do not think that this was done via biplot. I am also not sure what is normally plotted on a PCA plot of this type (e.g. loadings, scores, sdevs -- no clue). Again, the 15 variable names (var1, var2, var3 etc) are all that is contained in this plot, aligned with their respective values projected onto the first 2 PCs. > > Any idea on how to generate such a plot based on this description? > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
> Any idea on how to generate such a plot based on this description?One simple way of suppressing the individual points in biplot() is to give the labels a colour of 0. Adapting the biplot.princomp example: biplot(princomp(USArrests), col=c(0,1)) But that retains the point plot axes. If it's not what you meant, you'll need to provide the picture. S Ellison ******************************************************************* This email and any attachments are confidential. Any use, copying or disclosure other than by the intended recipient is unauthorised. If you have received this message in error, please notify the sender immediately via +44(0)20 8943 7000 or notify postmaster at lgcgroup.com and delete this message and any copies from your computer and network. LGC Limited. Registered in England 2991879. Registered office: Queens Road, Teddington, Middlesex, TW11 0LY, UK
Please keep communications on list. This is too confused to continue productively. See here: http://adv-r.had.co.nz/Reproducibility.html http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example ... and please read the posting guide and don't post in HTML. On Nov 30, 2015, at 9:49 AM, debra ragland <ragland.debra at yahoo.com> wrote:> Hi, > > I've tried this -- before your suggestion -- R throws an error at the plot argument stating that the figure margins are too large and the text argument staring that there is an invalid graphics state. > > The figure that I am referring to is similar to figure 4 here; > Computing and visualizing PCA in R > > > > > > > > > > Computing and visualizing PCA in R > Following my introduction to PCA, I will demonstrate how to apply and visualize PCA in R. There are many packages and functions that can apply PCA in R. In this po... > View on www.r-bloggers.com > Preview by Yahoo > > Without the circle (or gray background, but this is minor) enclosing the variables. I am currently trying to figure out how to the adapt the code to my needs but I am struggling. > > > > On Monday, November 30, 2015 9:25 AM, Boris Steipe <boris.steipe at utoronto.ca> wrote: > > > Your description is obscure but the following may get you started. The function prcomp() returns a list in which the matrix x contains the rotated values of your input. Assuming that your "variable names" are the rownames of your input, you can plot them with text(). > > Something like (untested): > > myPCA <- prcomp(someData) > plot(myPCA$x[,1], myPCA$x[,2], type = "n") > text(myPCA$x[,1], myPCA$x[,2], rownames(someData)) > > B. > > > > On Nov 30, 2015, at 8:56 AM, debra ragland via R-help <r-help at r-project.org> wrote: > > > Hello, > > > > A colleague of mine prepared a PCA plot of my data and I have no clue how he did it. My original data set contains 15 variables and 64 observations. I have been trying to figure out how he did it on my own, and I have asked but he's swamped so his response is taking longer than usual. Anywho, the plot is simply of PC1 vs. PC2 and in the area of the plot there are just the variable names aligned with values I'm guessing are the loadings (?) I have been searching around and I do not think that this was done via biplot. I am also not sure what is normally plotted on a PCA plot of this type (e.g. loadings, scores, sdevs -- no clue). Again, the 15 variable names (var1, var2, var3 etc) are all that is contained in this plot, aligned with their respective values projected onto the first 2 PCs. > > > > Any idea on how to generate such a plot based on this description? > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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. > > >
If it is just a plot of the variables by their loadings on the first two components, this should do it:> dat <- data.frame(matrix(rnorm(100), 10, 5)) > dat.pca <- prcomp(dat) > plot(dat.pca$rotation[, 1:2]) > text(dat.pca$rotation[, 1:2], colnames(dat), pos=3)Or if you don't want the symbols just the names, change the last two lines:> plot(dat.pca$rotation[, 1:2], type="n") > text(dat.pca$rotation[, 1:2], colnames(dat))------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Boris Steipe Sent: Monday, November 30, 2015 9:01 AM To: debra ragland Cc: r-help Subject: Re: [R] PCA plot of variable names only Please keep communications on list. This is too confused to continue productively. See here: http://adv-r.had.co.nz/Reproducibility.html http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example ... and please read the posting guide and don't post in HTML. On Nov 30, 2015, at 9:49 AM, debra ragland <ragland.debra at yahoo.com> wrote:> Hi, > > I've tried this -- before your suggestion -- R throws an error at the plot argument stating that the figure margins are too large and the text argument staring that there is an invalid graphics state. > > The figure that I am referring to is similar to figure 4 here; > Computing and visualizing PCA in R > > > > > > > > > > Computing and visualizing PCA in R > Following my introduction to PCA, I will demonstrate how to apply and visualize PCA in R. There are many packages and functions that can apply PCA in R. In this po... > View on www.r-bloggers.com > Preview by Yahoo > > Without the circle (or gray background, but this is minor) enclosing the variables. I am currently trying to figure out how to the adapt the code to my needs but I am struggling. > > > > On Monday, November 30, 2015 9:25 AM, Boris Steipe <boris.steipe at utoronto.ca> wrote: > > > Your description is obscure but the following may get you started. The function prcomp() returns a list in which the matrix x contains the rotated values of your input. Assuming that your "variable names" are the rownames of your input, you can plot them with text(). > > Something like (untested): > > myPCA <- prcomp(someData) > plot(myPCA$x[,1], myPCA$x[,2], type = "n") > text(myPCA$x[,1], myPCA$x[,2], rownames(someData)) > > B. > > > > On Nov 30, 2015, at 8:56 AM, debra ragland via R-help <r-help at r-project.org> wrote: > > > Hello, > > > > A colleague of mine prepared a PCA plot of my data and I have no clue how he did it. My original data set contains 15 variables and 64 observations. I have been trying to figure out how he did it on my own, and I have asked but he's swamped so his response is taking longer than usual. Anywho, the plot is simply of PC1 vs. PC2 and in the area of the plot there are just the variable names aligned with values I'm guessing are the loadings (?) I have been searching around and I do not think that this was done via biplot. I am also not sure what is normally plotted on a PCA plot of this type (e.g. loadings, scores, sdevs -- no clue). Again, the 15 variable names (var1, var2, var3 etc) are all that is contained in this plot, aligned with their respective values projected onto the first 2 PCs. > > > > Any idea on how to generate such a plot based on this description? > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.