hi duncan, thanks a lot for your help! yes, your solution is working fine with a little tweaking of the vector "poscec" : but on the other hand it's just affecting the relative position of labels around respective points; to get more flexibility would be probably better to supply (even if I do not know exactly how) a set of coordinates for respective labels via the parameters "x" and "y" or maybe just changing the position of some specific labels remaing the rest unaltered can you think to a viable solution for this approach? I've been trying that but for reasons I do not fully understand I can't make it work
thanks again for your valuable help Massimo Bressan ARPAV Environmental Protection Agency of Veneto Region - Italy Department of Treviso 31100 Treviso, Italy Il 27/02/2013 23:38, Duncan Mackay-2 [via R] ha scritto: > hi > > the bottom panel seems ok so for the top you > supply a vector of positions that are your > required positions (name eg posvec) to the panel > function. may need to do the same for other functions > to access the correct panel there is the ifelse statement > > posvec = c(...) > > panel = function(x, y , subscripts,...) { > pnl = panel.number() > panel.xyplot(x, y, cex=0.8,...) > panel.abline(a = 0, b = 1, lty = 2, col ="gray") > if (pnl == 2){ > panel.text(x, y, labels=tv.ms$inq[subscripts], > cex = 0.7, pos=3, offset=1, srt=0, adj=c(1,1)) > } else { > panel.text(x, y, labels=tv.ms$inq[subscripts], > cex = 0.7, pos=posvec, offset=1, srt=0, adj=c(1,1)) > } > #alternative to the use of panel.text > #ltext(x=x, y=y, labels=tv.ms$inq[subscripts], pos=1, cex=0.8) > }, > > HTh > > Duncan > > Duncan Mackay > Department of Agronomy and Soil Science > University of New England > Armidale NSW 2351 > Email: home: [hidden email] > </user/SendEmail.jtp?type=node&node=4659841&i=0> > > > At 22:30 27/02/2013, you wrote: > > >This is my reproducible example > >tv.ms<-structure(list(inq = structure(4:17, > >.Label = c("D4", "D5", "D6a", "D6b", "D6c", > >"D7", "D8", "F4", "F5a", "F5b", "F6a", "F6b", > >"F6c", "F6d", "F7a", "F7b", "F8"), class = > >"factor"), tv.km.median.iteq = > >c(0.320000000000004, 0.239999999999998, > >0.240000000000002, 0.0800000000000001, > >0.989999999999995, 0.309999999999999, > >4.47000000000003, 0.620000000000005, > >0.620000000000005, 0.18, 0.790000000000006, > >0.32, 0.0200000000000005, 0.01), > >ms.km.median.iteq = c(0.420000000000002, > >0.380000000000001, 0.33, 0.0900000000000001, > >1.06999999999994, 0.559999999999974, > >5.20000000000027, 1.5, 1.19, 0.469999999999999, > >0.310000000000002, 0.459999999999999, > >0.0400000000000003, 0.04 ), type = c("PCDD", > >"PCDD", "PCDD", "PCDD", "PCDF", "PCDF", "PCDF", > >"PCDF", "PCDF", "PCDF", "PCDF", "PCDF", "PCDF", > >"PCDF")), .Names = c("inq", "tv.km.median.iteq", > >"ms.km.median.iteq", "type"), row.names = 4:17, > >class = "data.frame") I worked out the chart > >mainly with the hints of this great forum > >(thanks again for that): what IâÂÂve done so far > >accomplishes my needs except for that now I need > >a little final tweaking in order to avoid the > >overlapping of some specific labels (i.e. by > >looking at the plot the labels: F6b and F6a, F7a > >and F5a) > >xyplot(tv.km.median.iteq~ms.km.median.iteq|type, > >data=tv.ms, layout=c(1,2), > >aspect="xy", xlab = expression(paste('ms > >[ fg/', m^3, ' ]', sep = '')), ylab = > >expression(paste('tv [ fg/', m^3, ' ]', sep = > >'')), scales= list(relation="free", > >log=10, cex=0.8), prepanel = > >function(x, y, subscripts) { rr<- > >range(cbind(x,y)) list(xlim = rr, > >ylim= rr) }, panel = function(x, > >y , subscripts,...) { panel.xyplot(x, > >y, cex=0.8,...) panel.abline(a = 0, b > >= 1, lty = 2, col > >="gray") panel.text(x, y, > >labels=tv.ms$inq[subscripts], > >cex = 0.7, pos=3, offset=1, srt=0, > >adj=c(1,1)) #alternative to the use of > >panel.text #ltext(x=x, y=y, > >labels=tv.ms$inq[subscripts], pos=1, > >cex=0.8) }, #subscripts=TRUE, > > xscale.components = > >function(...) { ans <- > >xscale.components.logpower(...) range > ><- ans$num.limit newtck <- > >round(seq(range[1],range[2],l=7),1) > >ans$bottom$ticks$at <- > >newtck ans$bottom$labels$at <- > >newtck ans$bottom$labels$labels > ><-parse(text=paste('10^',newtck,sep='')) > >ans } , yscale.components = > >function(...) { ans <- > >yscale.components.logpower(...) range > ><- ans$num.limit newtck <- > >round(seq(range[1],range[2],l=7),1) > >ans$left$ticks$at <- > >newtck ans$left$labels$at <- > >newtck ans$left$labels$labels > ><-parse(text=paste('10^',newtck,sep='')) > >ans } ) IâÂÂm thinking to sort out the > >problem by: 1 - plotting all labels except > >for those overlapping (i.e the above mentioned > >points); 2 - plotting the remaining labels > >(i.e. the overlapping ones) by introducing a > >âÂÂmanual displacementâÂÂ; I know thatâÂÂs > >probably not much efficient nor elegant > >resorting to a âÂÂmanual solutionâ involving > >at least two âÂÂplotting stepsâ (the first to > >see where to tweak and the second to fix) but I > >canâÂÂt think to any other solution Any help? > >Thank you max -- View this message in context: > >http://r.789695.n4.nabble.com/lattice-xyplot-point-labelling-tp4659798.html > > >Sent from the R help mailing list archive at > >Nabble.com. > >______________________________________________ > >[hidden email] </user/SendEmail.jtp?type=node&node=4659841&i=1> > 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. > > ______________________________________________ > [hidden email] </user/SendEmail.jtp?type=node&node=4659841&i=2> > 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. > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the > discussion below: > http://r.789695.n4.nabble.com/lattice-xyplot-point-labelling-tp4659798p4659841.html > > > To unsubscribe from lattice xyplot point labelling, click here > <http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4659798&code=bWJyZXNzYW5AYXJwYS52ZW5ldG8uaXR8NDY1OTc5OHwyMjQwMjkzMTc=>. > NAML > <http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > -- View this message in context: http://r.789695.n4.nabble.com/lattice-xyplot-point-labelling-tp4659798p4659871.html Sent from the R help mailing list archive at Nabble.com. [[alternative HTML version deleted]]
______________________________________________ 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.