Gabriel Yospin
2011-Aug-10 03:31 UTC
[R] Plotting Ellipses and Points of Matching Colors in an Ordination
Hello, R-Help - I am trying to plot the results of an ordination from package vegan. The tricky part for me right now is getting the colors of the ellipses denoting the 95% confidence intervals of the group centroids to match the colors of the points for those same groups.>From and earlier post, I saw the code to make a plot of the ordination usingdifferent colors for my different groups. My functional code is below: library(vegan) comvars <- read.csv("commvars9trim2.csv") com.mds <- metaMDS(comvars, trace=FALSE) firefactors <- read.csv("commvars9factors.csv") plot(com.mds, type = "n") points(com.mds, dis="si", pch = as.numeric(firefactors$comm4), col as.numeric(firefactors$comm4)) This code will generate the ordination and plot it, using the factor levels from firefactors$comm4 to determine the colors and characters to use in the plot. What I would like to do next is plot the ellipses denoting the 95% confidence intervals of the group centroids, with colors matching those of the points. The following piece of code plots the centroids: with(firefactors, ordiellipse(com.mds, comm4, kind = "se", conf = 0.95, col = as.numeric(firefactors$comm4)), label = TRUE) But the above code makes all of the ellipses blue. Blue is the fourth color in my default palette(), and the first value returned by as.numeric(firefactors$comm4) is 4. I assume that's not a coincidence, but I could be wrong. I have also tried using: plot(com.mds, display = "sites", type = "p") with(firefactors, ordiellipse(com.mds, comm4, kind = "se", conf = 0.95, col = as.numeric(firefactors$comm4)) But that code also gives me blue ellipses. Finally, I'd like to label the ellipses. The only way I've found to do that is by using the ordispider() function. Is there any way to make ordispider draw no lines? I've tried with(firefactors, ordispider(com.mds, comm4, col = "green3", label = TRUE, lty = 3)) My two questions: 1. How do I make the ellipse color match the color of the points each ellipse represents? 2. How do I label those ellipses, without drawing the dashed lines as per ordispider()? Many thanks, Gabe -- Gabriel I. Yospin Center for Ecology & Evolutionary Biology Bridgham Lab University of Oregon Eugene, OR 97403-5289 [[alternative HTML version deleted]]
Jean V Adams
2011-Aug-10 13:09 UTC
[R] Plotting Ellipses and Points of Matching Colors in an Ordination
Gabe, Since you didn't provide a small example of your data, I can't test out your code. However, I used an example from the ?ordiellipse help page to draw different colored ellipses (using the show.groups= argument) with labels (using the label= argument). Hope this helps. library(vegan) data(dune) data(dune.env) mod <- cca(dune ~ Management, dune.env) attach(dune.env) plot(mod, type="n") points(mod, display="sites", pch=as.numeric(Management), col=as.numeric(Management)) groupz <- sort(unique(Management)) for(i in seq(groupz)) { ordiellipse(mod, Management, kind="se", conf=0.95, label=T, font=2, cex=1.5, col=i, show.groups=groupz[i]) } Jean `·.,, ><(((º> `·.,, ><(((º> `·.,, ><(((º> Jean V. Adams Statistician U.S. Geological Survey Great Lakes Science Center 223 East Steinfest Road Antigo, WI 54409 USA From: Gabriel Yospin <yosping@gmail.com> To: r-help@r-project.org Date: 08/09/2011 10:34 PM Subject: [R] Plotting Ellipses and Points of Matching Colors in an Ordination Sent by: r-help-bounces@r-project.org Hello, R-Help - I am trying to plot the results of an ordination from package vegan. The tricky part for me right now is getting the colors of the ellipses denoting the 95% confidence intervals of the group centroids to match the colors of the points for those same groups.>From and earlier post, I saw the code to make a plot of the ordinationusing different colors for my different groups. My functional code is below: library(vegan) comvars <- read.csv("commvars9trim2.csv") com.mds <- metaMDS(comvars, trace=FALSE) firefactors <- read.csv("commvars9factors.csv") plot(com.mds, type = "n") points(com.mds, dis="si", pch = as.numeric(firefactors$comm4), col as.numeric(firefactors$comm4)) This code will generate the ordination and plot it, using the factor levels from firefactors$comm4 to determine the colors and characters to use in the plot. What I would like to do next is plot the ellipses denoting the 95% confidence intervals of the group centroids, with colors matching those of the points. The following piece of code plots the centroids: with(firefactors, ordiellipse(com.mds, comm4, kind = "se", conf = 0.95, col = as.numeric(firefactors$comm4)), label = TRUE) But the above code makes all of the ellipses blue. Blue is the fourth color in my default palette(), and the first value returned by as.numeric(firefactors$comm4) is 4. I assume that's not a coincidence, but I could be wrong. I have also tried using: plot(com.mds, display = "sites", type = "p") with(firefactors, ordiellipse(com.mds, comm4, kind = "se", conf = 0.95, col = as.numeric(firefactors$comm4)) But that code also gives me blue ellipses. Finally, I'd like to label the ellipses. The only way I've found to do that is by using the ordispider() function. Is there any way to make ordispider draw no lines? I've tried with(firefactors, ordispider(com.mds, comm4, col = "green3", label = TRUE, lty = 3)) My two questions: 1. How do I make the ellipse color match the color of the points each ellipse represents? 2. How do I label those ellipses, without drawing the dashed lines as per ordispider()? Many thanks, Gabe -- Gabriel I. Yospin Center for Ecology & Evolutionary Biology Bridgham Lab University of Oregon Eugene, OR 97403-5289 [[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. [[alternative HTML version deleted]]