[R] curvedarrow (some graphics problem)
baptiste auguie
baptiste.auguie at gmail.com
Tue Jun 23 14:16:47 CEST 2009
Hi,
Grid offers several functions to help drawing such graphs,
see Paul Murrell's "Can R Draw Graphs? " (useR! 2006)
I came up with this, as a quick example,
vp <- viewport(
x = unit(0, "npc"),
y = unit(0, "npc"),
just = c("left", "bottom"),
xscale = c(-1, 1) ,
yscale = c(-1, 1))
vp2 <- viewport( # probably not needed but I had trouble placing the xaxis
x = unit(0, "npc"),
y = unit(0.5, "npc"),
just = c("left", "bottom"),
xscale = c(-1, 1) ,
yscale = c(-1, 1))
pushViewport(vp)
grid.xaxis(at=seq(-1, 1, by=0.2), label=FALSE, vp=vp2)
grid.points(x=0.3, y=0.5, gp=gpar(col=NA), default.units = "npc",
name="h1", vp=vp)
grid.points(x=0.8, y=0.5, gp=gpar(col=NA), default.units = "npc",
name="h2", vp=vp)
grid.text("t", x=0.3, y=unit(-1, "line"), vp=vp2)
grid.text("s", 0.8, unit(-1, "line"), gp=gpar(col="red"), vp=vp2)
grid.curve(grobX("h2", 180),
grobY("h2", 180),
grobX("h1", 180),
grobY("h1", 180),
shape=1, ncp=10,
square=FALSE,
curvature=1,
arrow=arrow())
upViewport()
HTH,
baptiste
casperyc wrote:
> Hi there,
>
> I just wonder how to draw this kind of picture...
>
> http://www.nabble.com/file/p24158796/b.jpg
> http://www.nabble.com/file/p24158796/a.jpg
>
> and this is what i have done
>
> %%%%%
> library(shape)
> library(diagram)
> curve(sin(x),bty="n",-8,8,yaxt="n",ylab="",xaxt="n",type="n",xlab="")
> axis(1,labels=F,at=seq(-8,8,1))
> curvedarrow(from=c(-4,-1), to=c(4,-1),curve=-0.035,arr.pos=1,lwd=1)
> text(0,-0.62,substitute(mu(s,t)))
> axis(1,labels="s",at=-4)
> axis(1,labels="t",at=4)
> %%%%%
>
> is there any easier way
> or
> the most proper way to draw these to graphs?
>
> Thanks in advance!
>
> Chen
>
More information about the R-help
mailing list