[R] how to plot density distribution with a arrow pointer?

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jun 17 05:25:53 CEST 2005


Sorry, I copied the first part from the previous post and the second part
from my editor session and must have not copied the entire script.
Here it is again:


# next 5 lines from previous post:
x0 <- 0.899 
x  <- c( rnorm(6000), rnorm(4000, mean=3) )
plot( d <- density(x) )
y0 <- approx( d$x, d$y, xout=x0 )$y # height at x0
# segments( x0, 0, x0, y0, col=2 )

vf <- c("serif", "plain")
points(x0,y0, pch=20, col="red") # red dot
text(x0,y0, "\\da",vfont=vf, pos=3, col="green") 
text(x0,y0, "\\ua",vfont=vf, pos=1, col="red")
yax <- par("usr")[3]  # xaxis was drawn at this y level
text(x0,yax, "\\ua", vfont=vf, pos=1, col="blue", xpd=TRUE, offset=0)
text(x0,yax, "\\da", vfont=vf, pos=3, col="red", xpd=TRUE, offset=0)


On 6/16/05, Jim Brennan <jfbrennan at rogers.com> wrote:
> I am trying to reproduce your example but we don't have object vf in
> vfont=vf. Do we need some package?
> 
> R>text(x0,y0, "\\da",vfont=vf, pos=3, col="green")
> Error in text.default(x0, y0, "\\da", vfont = vf, pos = 3, col = "green") :
>        Object "vf" not found
> R>version
>         _
> platform i386-pc-mingw32
> arch     i386
> os       mingw32
> system   i386, mingw32
> status
> major    2
> minor    1.0
> year     2005
> month    04
> day      18
> language R
> 
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Gabor Grothendieck
> Sent: June 16, 2005 10:56 PM
> To: ramasamy at cancer.org.uk
> Cc: R
> Subject: Re: [R] how to plot density distribution with a arrow pointer?
> 
> On 6/16/05, Adaikalavan Ramasamy <ramasamy at cancer.org.uk> wrote:
> > I am assuming that you want to do this empirically :
> >
> >  x0 <- 0.899
> >  x  <- c( rnorm(6000), rnorm(4000, mean=3) )
> >  plot( d <- density(x) )
> >
> >  y0 <- approx( d$x, d$y, xout=x0 )$y # height at x0
> >
> >  segments( x0, 0, x0, y0, col=2 )
> >
> 
> 
> The following displays 4 arrows.  Choose the one you
> like best:
> 
> # next 5 lines from previous post:
> x0 <- 0.899
> x  <- c( rnorm(6000), rnorm(4000, mean=3) )
> plot( d <- density(x) )
> y0 <- approx( d$x, d$y, xout=x0 )$y # height at x0
> # segments( x0, 0, x0, y0, col=2 )
> 
> points(x0,y0, pch=20, col="red") # red dot
> text(x0,y0, "\\da",vfont=vf, pos=3, col="green")
> text(x0,y0, "\\ua",vfont=vf, pos=1, col="red")
> yax <- par("usr")[3]  # xaxis was drawn at this y level
> text(x0,yax, "\\ua", vfont=vf, pos=1, col="blue", xpd=TRUE, offset=0)
> text(x0,yax, "\\da", vfont=vf, pos=3, col="red", xpd=TRUE, offset=0)
> 
> The above uses xpd= which allows drawing outside of the main
> plot area and usr= which we need to get the position of the
> y coordinate of the boundary.  It also uses the Hershey font
> for the arrow.  Other arguments are described on the
> appropriate page.  See:
> 
>        ?points
>        ?text
>        ?par # info on xpd= and usr=
>        ?Hershey
>        demo(Hershey)  # examples of arrows
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> 
>




More information about the R-help mailing list