[R] plot the number of replicates at the same point

Marc Schwartz (via MN) mschwartz at mn.rr.com
Thu Jul 14 22:16:39 CEST 2005


On Thu, 2005-07-14 at 15:08 -0500, Deepayan Sarkar wrote:
> On 7/14/05, Marc Schwartz (via MN) <mschwartz at mn.rr.com> wrote:
> > On Thu, 2005-07-14 at 12:30 -0500, Deepayan Sarkar wrote:
> > > On 7/14/05, Kerry Bush <kerryrekky at yahoo.com> wrote:
> > > > Thank you for thinking about the problem for me.
> > > > However, I have found that your method doesn't work at
> > > > all.
> > > >
> > > > You may test the following example:
> > > >
> > > > x1=c(0.6,0.4,.4,.4,.2,.2,.2,0,0)
> > > > x2=c(0.4,.2,.4,.6,0,.2,.4,0,.2)
> > > > x1=rep(x1,4)
> > > > x2=rep(x2,4)
> > > > temp=data.frame(x1,x2)
> > > > temp1=table(temp)
> > > > plot(temp$x1,temp$x2,cex=0)
> > > > text(as.numeric(rownames(temp1)),
> > > > as.numeric(colnames(temp1)), temp1)
> > > >
> > > > what I got here is not what I wanted. You may compare
> > > > with
> > > > plot(x1,x2)
> > > >
> > > > I actually want some plots similar to what SAS proc
> > > > plot produced.
> > > >
> > > > Does anybody have a clue of how to do this easily in
> > > > R?
> > >
> > > Try this:
> > >
> > >
> > > x1=c(0.6,0.4,.4,.4,.2,.2,.2,0,0)
> > > x2=c(0.4,.2,.4,.6,0,.2,.4,0,.2)
> > > x1=rep(x1,4)
> > > x2=rep(x2,4)
> > > temp=data.frame(x1,x2)
> > >
> > > foo <- subset(as.data.frame(table(temp)), Freq > 0)
> > > foo$x1 <- as.numeric(as.character(foo$x1))
> > > foo$x2 <- as.numeric(as.character(foo$x2))
> > >
> > > with(foo, plot(x1, x2, type = "n"))
> > > with(foo, text(x1, x2, lab = Freq))
> > >
> > >
> > > -Deepayan
> > 
> > 
> > Great solution Deepayan. I was just in the process of working on
> > something similar.
> > 
> > One quick modification is that the two plot()/text() functions can be
> > combined into:
> > 
> >   with(foo, plot(x1, x2, pch = as.character(Freq)))
> 
> Only as long as all(Freq < 10) (I've been bitten by this before. :-) ).
> 
> Deepayan


D'oh!

Indeed you are correct, since 'pch' is a single character:

  plot(1:20, pch = as.character(1:20))

as opposed to:

  plot(1:20, type = "n")
  text(1:20, lab = 1:20)

Thanks for the correction.

Marc




More information about the R-help mailing list