[R] use different symbols for frequency in a plot

Adaikalavan Ramasamy ramasamy at cancer.org.uk
Mon Aug 8 22:04:23 CEST 2005


Group by which variable ? If you mean the joint distribution of 'x' and
'y' then something along the following lines

 x <- rep( c(0.1, 0.2, 0.4, 0.5),      c(5, 6, 10, 20) )
 y <- rep( c(0.5, 0.6, 1.2, 2.5, 3.0), c(3, 8, 8, 18, 4) )

 new     <- factor( paste(x, y, sep="_") )
 tb      <- table(new)

 pchcode <- cut(tb , c(-Inf, 1, 5, 6, 10, Inf), labels=F)

 tmp     <- t( sapply( strsplit( names(tb), split="_") , c ) )
 df      <- data.frame( x=tmp[ ,1], y=tmp[ ,2], 
                        freq=as.vector(tb), pchcode = pchcode -1 )

     x   y freq pchcode
 1 0.1 0.5    3       1
 2 0.1 0.6    2       1
 3 0.2 0.6    6       2
 4 0.4 1.2    8       3
 5 0.4 2.5    2       1
 6 0.5 2.5   16       4
 7 0.5   3    4       1

And now to plot it, we use points() repeatedly.

 plot( as.numeric(df$x), as.numeric(df$y), type="n" )

 for( i in unique( df$pchcode ) ){
    w <- which( df$pchcode == i )
    points( df$x[w], df$y[w], pch=as.numeric(i) )
 }

I am sure someone else will come up with a neater solution.


Can I also suggest that you try the following

  plot( jitter(x), jitter(y) )

or better still the following

  library(hexbin)
  plot( hexbin(x, y) )


Regards, Adai

On Mon, 2005-08-08 at 11:57 -0700, Kerry Bush wrote:
> suppose I have the following data
> 
> x<-c(rep(.1,5),rep(.2,6),rep(.4,10),rep(.5,20))
> y<-c(rep(.5,3),rep(.6,8),rep(1.2,8),rep(2.5,18),rep(3,4))
> 
> If I plot(x,y) in R, I will only get seven distinct
> points. What I want to do is to use different symbols
> to show the frequency at each point.
> 
> e.g. if the frequncey is between 1 and 5, then I plot
> the point as a circle; if the frequency is between 6
> and 10, then I plot the point as a square; if the
> frequency is above 10, then I plot the point as a
> triangle.
> 
> I am not sure how to do this in R. Can anybody help me?
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list