Hi,
You can use scales() and parametrize it with a list where you can define
colors, fonts, etc.
I could not test it on your code because variable "Commodity" is not
present
in the dataset you provided.
Regards,
Carlos Ortega
www.qualityexcellence.es
On Thu, Sep 15, 2011 at 11:03 AM, markm0705 <markm0705@gmail.com> wrote:
> Dear R helpers
>
> I would like to be able to colour code the y-axis labels on a complex dot
> plot by a variable known as company (of which there are only two). The
> code
> is below and data attached.
>
> Thanks
>
> MarkM
>
> library("lattice")
> library(latticeExtra) # for mergedTrellisLegendGrob()
>
> # set size of the window
> windows(height=10, width=7,rescale=c("fixed"))
>
> ##read the data to a variable
>
>
#----------------------------------------------------------------------------------------
>
> Cal_dat <- read.table("Calibration2.dat",header = TRUE,sep =
"\t",)
>
> ## set up plotting colours
>
>
#----------------------------------------------------------------------------------------
> # Colours for the six commodity
>
>
col.pat<-c("violet","cyan","green","red","blue","black","yellow")
>
> # Circles squares and diamond symbols for the year
> sym.pat<-c(19,20,21)
>
> ##set up the plot key
>
>
#----------------------------------------------------------------------------------------
> # key for commodities
> # defaults
> bord.col<-"grey90"
> trans.fac<-0.9
> sym.siz<-1.8
>
> key1 <-
> draw.key(list(text=list(levels(Cal_dat$Commodity)),
> title="Ore type",
> border =bord.col,
> background = bord.col,
> alpha.background=trans.fac,
> just=1,
> points=list(pch=22, cex=sym.siz, fill=col.pat,
> col="transparent")),
> draw = FALSE)
> key2 <-
> draw.key(list(text=list(levels(factor(Cal_dat$Year))),
> title="Year",
> border = bord.col,
> background = bord.col,
> alpha.background=trans.fac,
> just=1,
> points = list(pch = c(21, 22, 23), cex=sym.siz,
> col="black")),
> draw = FALSE)
>
> mkey <-
> mergedTrellisLegendGrob(list(fun = key2),
> list(fun = key1),
> vertical = FALSE
> )
>
> ##set some parameters for the plot
>
>
#----------------------------------------------------------------------------------------
> trellis.par.set(
> dot.line=list(col = "grey95", lty=1),
> axis.line=list(col = "grey50"),
> axis.text=list(col ="grey50", cex=0.8),
> panel.background=list(col="transparent")
> )
>
> ## Create the dot plot
>
>
#----------------------------------------------------------------------------------------
> # some mean values for reference lines first
>
> ave_dat<-aggregate(Cal_dat$Resc_Gt, by = list(Cal_dat$Year),mean)
>
> # create the plot
>
> with(Cal_dat,
> dotplot(reorder(paste(Mine,Company), Resc_Gt) ~ Resc_Gt,
> fill_var = Commodity,
> pch_var = factor(Year),
> xlab_var = factor(Company),
> pch = c(21, 22, 23),
> cex=sym.siz,
> col = "black",
> fill = col.pat,
> alpha=0.6,
> legend = list(inside = list(fun = mkey,corner = c(0.97, 0.06))),
> scales = list(x = list(log = 10)),
> xscale.components = xscale.components.log10ticks,
> origin = 0,
> type = c("p","a"),
> main = "Mineral resources",
> xlab= "Total tonnes (billions)",
> panel = function(x, y, ..., subscripts,
> fill, pch, fill_var, pch_var) {
> pch <- pch[pch_var[subscripts]]
> fill <- fill[fill_var[subscripts]]
>
panel.ablineq(v=log(ave_dat[1,2]),col="grey60", lty=1,
> rotate> TRUE,label="2002", at=0.40)
>
panel.ablineq(v=log(ave_dat[2,2]),col="grey60", lty=1,
> rotate> TRUE,label="2009", at=0.50)
>
panel.ablineq(v=log(ave_dat[3,2]),col="grey60", lty=1,
> rotate> TRUE,label="2010", at=0.60)
> panel.dotplot(x, y, pch = pch, fill = fill, ...)
>
> })) http://r.789695.n4.nabble.com/file/n3815044/Calibration.dat
> Calibration.dat
>
> --
> View this message in context:
>
http://r.789695.n4.nabble.com/Colour-code-y-axis-labels-on-a-dot-plot-tp3815044p3815044.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]