[R] Help with Plot

April Smith aprilgracesmith at gmail.com
Tue Aug 4 19:58:19 CEST 2015


Let me just preface that everything I know about writing code for R is self
taught so this may be really basic but I can't figure it out!

I am using someone else code to create plots.  I would like to change the
automatically generated colors to the same colors for every plot.  The
current code makes the highest line in the graph black, the second highest
line red, 3rd blue, etc, regardless of what the line represents.  I need to
create 10 of these plots and it gets confusing when the black line means a
different thing in each plot!   Here is the line I need to adjust, I just
don't know how.

lines(1:orders, x[i,], col=i)

Here is the code in entirety:
plot.hill <- function(x, scales = c(0, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64,
   Inf), ...) {
   require(vegan)
   nsites <- if(is.null(ncol(x))) 1 else ncol(x)
   x <- renyi(t(x), scales=scales, hill=TRUE)
   orders <- length(scales)
   if(nsites > 1) {
      x <- x[order(x[,1], decreasing=TRUE),]
      OP <- matrix(".   ", nsites,nsites)
      colnames(OP) <- rownames(OP) <- rownames(x)
      for(i in 1:(nsites-1))
         for(j in (i+1):nsites)
            if(all(x[i,] > x[j,])) {
               OP[i,j] <- "<   "
               OP[j,i] <- "^   "
            }
      diag(OP) <- " "
      OP <- as.data.frame(OP)
      cat("The arrow < or ^ points to the more diverse site:\n")
      print(OP, na.print=" ")
   } else
      OP <- NULL
   plot(1:4,1:4,type="n",xlim=c(0.9,orders+0.1),ylim=range(0,x),axes=FALSE,
      ylab="Hill Diversity Numbers",xlab="Order", ...)
   axis(2)
   axis(1, at=1:orders, labels=scales)
   if(nsites > 1) {
      for(i in 1:nsites)
         lines(1:orders, x[i,], col=i)
      legend("topright", legend=row.names(x), col=1:nsites, lty=1, cex=0.7)
   } else
      lines(1:orders, x)
   invisible(OP)
}

	[[alternative HTML version deleted]]



More information about the R-help mailing list