[R] Sorting order of reorder with multiple variables
markm0705
markm0705 at gmail.com
Thu Aug 25 14:45:33 CEST 2011
I've been building a ranked dot plot for several days now and am sorting the
data using the reorder command. What I don't understand is how reorder
works when mutiple varibles are plotted by grouping. In the example below
I'm using re-order to sort by a variable name Resv_Prop, but I'm plotting up
to three different values of Resv_prop (different Year values) for each
factor.
The results are not what i expected and I would like to control the sorting
by the 2010 Year values.
Any assistance greatly appreciated (Data file is attached)
(out of interst this code also has a very neat solution for plotting two
different keys - code by Deepayan Sarkar)
## initalise
library("lattice")
library(latticeExtra) # for mergedTrellisLegendGrob()
##read the data to a variable
Cal_dat <- read.table("Calibration2.dat",header = TRUE,sep = "\t",)
## set up plotting colours
col.pat<-c("violet","cyan","green","red","blue","black","yellow")
sym.pat<-c(19,20,21)
#list(levels(Cal_dat$Year)
##set up the plot keys
key1 <-
draw.key(list(text=list(levels(Cal_dat$Commodity)),
title="Ore type",
points=list(pch=21, cex=1.3, fill=col.pat, col="black")),
draw = FALSE)
key2 <-
draw.key(list(text=list(levels(factor(Cal_dat$Year))),
title="Year",
points = list(pch = c(21, 22, 23), cex=1.3, col="black")),
draw = FALSE)
mkey <-
mergedTrellisLegendGrob(list(fun = key2),
list(fun = key1),
vertical = TRUE)
)
##set some parameters for the plot
trellis.par.set(
dot.line=list(col = "grey90", lty="dashed"),
axis.line=list(col = "grey90"),
axis.text=list(col ="grey50", cex=0.8),
panel.background=list(col="transparent"),
par.xlab.text= list(col="grey50")
)
## Create the dot plot
with(Cal_dat,
dotplot(reorder(paste(Mine,Company), Resv_Prop) ~ Resv_Prop,
fill_var = Commodity,
pch_var = factor(Year),
cex=1.2,
pch = c(21, 22, 23),
col = "black",
fill = col.pat,
aspect = 2.0,
## key = plot.key,
legend = list(inside = list(fun = mkey, corner = c(1, 0))),
origin = 0,
type = c("p"),
main = "Reserve Proportion",
xlab= "Proportion of Total Resource",
panel = function(x, y, ..., subscripts,
fill, pch, fill_var, pch_var) {
pch <- pch[pch_var[subscripts]]
fill <- fill[fill_var[subscripts]]
panel.dotplot(x, y, pch = pch, fill = fill, ...)
})) http://r.789695.n4.nabble.com/file/n3768125/Calibration2.dat
Calibration2.dat
--
View this message in context: http://r.789695.n4.nabble.com/Sorting-order-of-reorder-with-multiple-variables-tp3768125p3768125.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list