>From the help page of codes():

     Normally `codes' is not the appropriate function to use with an
     unordered factor.  Use `unclass' or `as.numeric' to extract the
     codes used in the internal representation of the factor, as these
     do not assume that the codes are sorted.

and this is one of the `normally' cases.  Your code will only work
correctly if the levels are in alphabetical order (in the locale in use).

On Fri, 3 Jan 2003, Warnes, Gregory R wrote:

> How about this snippet:
>
> # Create an Example Data Frame Containing Car x Color data
> carnames <- c("bmw","renault","mercedes","seat")
> carcolors <- c("red","white","silver","green")
> datavals <- round(rnorm(16, mean=10, sd=4),1)
> data <- data.frame(Car=rep(carnames,4),
>                    Color=rep(carcolors, c(4,4,4,4) ),
>                    Value=datavals )
> # show the data
> data
>
> # plot the Car x Color combinations, using 'cex' to specify the dot size
> plot(x=codes(data$Car),     # codes give numeric values
>      y=codes(data$Color),
>      cex=data$Value/max(data$Value)*12,  # standardize size to (0,12)
>      pch=19,  # filled circle
>      col="skyblue", # dot color
>      xlab="Car", # x axis label
>      ylab="Color", # y axis label
>      xaxt="n", # no x axis lables
>      yaxt="n", # no y axis lables
>      bty="n",  # no box around the plot
>      xlim=c(0,nlevels(data$Car  )+0.5), # extra space on either end of plot
>      ylim=c(0.5,nlevels(data$Color)+1.5)  # so dots don't cross into margins
>      )
>
> # add text labels
> text(x=1:nlevels(data$Car), y=nlevels(data$Car)+1, labels=levels(data$Car))
> text(x=0, y=1:nlevels(data$Color), labels=levels(data$Color) )
>
> # add borders between cells
> abline(v=(0:nlevels(data$Car)+0.5))
> abline(h=(0:nlevels(data$Color)+0.5))
>
> # annotate with actual values
> text(x=codes(data$Car),     # codes give numeric values
>      y=codes(data$Color),
>      labels=format(data$Value),       # label value
>      col="black", # textt color
>      )
>
> # put a nice title
> title(main="Car by Color Popularity\n(Dot size proportional to popularity)")
>
>
> -Greg
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, January 03, 2003 4:46 AM
> > To: [EMAIL PROTECTED]
> > Cc: [EMAIL PROTECTED]
> > Subject: [R] type of representation
> >
> >
> > Hi
> >
> > I have some data that i want to plot but i don't find how to
> > do it. I have car
> > types (bmw,renault,mercedes,seat ...), colors and a number
> > for each car
> > type-color relation.I want to come up with a matrix
> > representation of cars vs
> > colors where in each intersection i could set a dot
> > proportional in size to my
> > third variable.
> >
> >
> > Can anybody give me a clue of hoe to come up with such representation.
> >
> > Thanks
> >
> > Ramon
> >
> > ______________________________________________
> > [EMAIL PROTECTED] mailing list
> > http://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >
>
>
> LEGAL NOTICE\ Unless expressly stated otherwise, this message is ... [[dropped]]
>
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/r-help
>

-- 
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to