Hi,

On Jul 29, 2009, at 12:11 PM, jaregi wrote:


Hi Michael, Steve, and 1Rnwb,

I'm very impressed by the quick replies on the mailer. Thanks a lot for your
suggestions. They worked very well.

In general, I have to say that I'm a bit disappointed that in R, like in Excel, one basically needs to hack to get a dot blot with categories by adding an artificial x value. I was hoping this common type of diagram could
be generated using a standard function like dotplot or dotchart.

Is it really that disappointing?

I've never used excel for anything serious, so I don't know what life is like there, but in R you can make your own functions in order to encapsulate functionality you find useful. So, for instance, let's take the code I used before and wrap it up a bit nicer:

dotplot <- function(..., labels=NULL, cols=NULL, main="My Awesome Dotplot") {
  stuff <- list(...)
  lower <- min(sapply(stuff, min))
  upper <- max(sapply(stuff, max))

  if (is.null(cols)) {
    cols <- rainbow(length(stuff))
  }
plot(jitter(rep(1, length(stuff[[1]]))), stuff[[1]], ylim=c(lower,upper),
       xlim=c(0.5,length(stuff)+0.5), xlab=NULL, xaxt='n', col=cols[1],
       main=main)

  if (length(stuff) > 1) {
    for (i in 2:length(stuff)) {
points(jitter(rep(i, length(stuff[[i]]))), stuff[[i]], col=cols[i])
    }
  }

  if (is.null(labels)) {
    labels <- paste("Group", seq(stuff))
  }
  axis(1, seq(stuff), labels=labels)
}

Copy that function up there and either (i) paste it into your R workspace, or (ii) save it to a file and source('/path/to/dotplot.R').

Now look at the difference between these two:

dotplot(rnorm(20,10,2), rnorm(20,15,1), rnorm(10,15,0.1))
dotplot(rnorm(20,10,2), rnorm(20,15,1), rnorm(10,15,0.1), cols=c('red','green','blue'), labels=c('A', 'B', 'C'), main="Custom Colors")

See ?plot ?title ?par to tweak the plotting functionality as you wish.

-steve

--
Steve Lianoglou
Graduate Student: Computational Systems Biology
  |  Memorial Sloan-Kettering Cancer Center
  |  Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact

______________________________________________
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.

Reply via email to