[R] Y values below the X plot

Jim Lemon jim at bitwrit.com.au
Fri Jun 6 12:44:31 CEST 2008


jpardila wrote:
> Dear List,
> I am creating a plot and I want to insert the tabular data below the X axis.
> I mean for every value of X I want to show the value in Y as a table below
> the plot. I think the attached image gives an idea of what I mean by this. 
> 
> Below is the code i am using now... but as you see the Y values don't have
> the right location. Maybe I should insert them as a table? Any ideas on
> that. This should be easy to do but I don't have much experience in R. 
> Many thanks in advanced,
> JP
> 
> http://www.nabble.com/file/p17670311/legend.jpg legend.jpg 
> -------------------------
> img1<-c(-5.28191709,-5.364480081,-4.829456677,-5.325101503,-5.212952356,-5.181171896,-5.211122693,-5.153677663,-5.292961077,-5.151612394,-5.056544559,-5.151457115,-5.332984571,-5.325259917,-5.523870109,-5.429800485,-5.436455325)
> img2<-c(-5.55,-5.56,-5.72,-5.57,-5.34,-5.18,-5.18,-5.36,-5.46,-5.32,-5.29,-5.37,-5.42,-5.45,-5.75,-5.75,-5.77)
> angle<-26:42
> plot(img1~angle, type="o", xlab="Incident angle", ylab="sigma",
> ylim=c(-8,-2),lwd=2,col=8, pch=19,cex=1,axes="false")
> lines(img2~angle,lwd=2,type="o", col=1, pch=19,cex=1)
> legend(38,-2,format(img1,digits=2), cex=0.8)
> legend(40,-2,format(img2,digits=2),cex=0.8)
> legend(26, -2, c("Image 1","Image 2"), cex=0.8,lwd=2,col=c("8","1"), pch=19,
> lty=1:2,bty="n")
> abline(h = -1:-8, v = 25:45, col = "lightgray", lty=3)
> 
> axis(1, at=2*0:22)
> axis(2, at=-8:-2)
> -----------------------------------
Hi JP,
I thought I could do this with addtable2plot, but I hadn't coded a 
column spacing into it (maybe next version). However, this is almost 
what you want, and I'm sure you can work out how to add the lines.

plot(img1~angle, type="o", xlab="Incident angle", ylab="sigma",
  ylim=c(-8,-2),lwd=2,col=8, pch=19,cex=1,axes="false")
box()
lines(img2~angle,lwd=2,type="o", col=1, pch=19,cex=1)
tablerownames<-"Angle\nImage1\nImage2"
mtext(c(tablerownames,
  paste(angle,round(img1,2),round(img2,2),sep="\n")),
  1,line=1,at=c(24.7,angle),cex=0.5)

Jim



More information about the R-help mailing list