[R] how to add a vertical line for each panel in a lattice dotplot with log scale?
maxbre
mbressan at arpa.veneto.it
Thu Jun 7 17:34:51 CEST 2012
a new session of R with the following sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=Italian_Italy.1252 LC_CTYPE=Italian_Italy.1252
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] latticeExtra_0.6-19 RColorBrewer_1.0-5 lattice_0.20-6
loaded via a namespace (and not attached):
[1] grid_2.15.0 tools_2.15.0
this is the code I run
#start
library(lattice); library(latticeExtra)
#example with user function
addLine<- function(a=NULL, b=NULL, v = NULL, h = NULL, ..., once=F) {
tcL <- trellis.currentLayout()
k<-0
for(i in 1:nrow(tcL))
for(j in 1:ncol(tcL))
if (tcL[i,j] > 0) {
k<-k+1
trellis.focus("panel", j, i, highlight = FALSE)
if (once) panel.abline(a=a[k], b=b[k], v=v[k], h=h[k], ...) else
panel.abline(a=a, b=b, v=v, h=h, ...)
trellis.unfocus()
}
}
dotplot(variety ~ yield | site, data = barley,
scales=list(x=list(log=TRUE)),
layout = c(1,6),
panel = function(x,y,...) {
panel.dotplot(x,y,...)
median.values <- median(x)
panel.abline(v=median.values, col.line="red")
})
mean.values<-tapply(barley$yield, barley$site, mean)
addLine(v=log10(mean.values), once=TRUE, col="blue")
# example with panel.abline
dotplot(variety ~ yield | site, data = barley,
scales=list(x=list(log=TRUE)),
layout = c(1,6),
panel = function(x,y,...) {
panel.dotplot(x,y,...)
mean.values <- mean(x) #omitted in second run
panel.abline(v=mean.values, col.line="red") #omitted in second
run
median.values <- median(x)
panel.abline(v=median.values, col.line="blue")
})
#end
this are the two different results I’ve got:
example with user defined function
http://r.789695.n4.nabble.com/file/n4632706/example_with_user_function.png
example with panel.abline
http://r.789695.n4.nabble.com/file/n4632706/example_with_panel_abline.png
and now I’m really confused of what I’m doing and seeing…
--
View this message in context: http://r.789695.n4.nabble.com/how-to-add-a-vertical-line-for-each-panel-in-a-lattice-dotplot-with-log-scale-tp4632513p4632706.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list