[R] curvedarrow (some graphics problem)
baptiste auguie
ba208 at exeter.ac.uk
Thu Jun 25 10:19:36 CEST 2009
This will give you a greek character, see ?plotmath
grid.text(expression(mu*"(s,t)"), 0.5, unit(5, "lines"), vp=vp2)
The following works for me, it may be that you're using an outdated
version of R,
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))
pdf() # open the pdf device
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.7, y=0.5, gp=gpar(col=NA), default.units = "npc",
name="h2", vp=vp)
grid.text("s", x=0.3, y=unit(-1, "lines"), vp=vp2)
grid.text("t", 0.7, unit(-1, "lines"), gp=gpar(col="red"), vp=vp2)
grid.text(expression(mu*"(s,t)"), 0.5, unit(5, "lines"), vp=vp2)
grid.curve(grobX("h2", 180),
grobY("h2", 180),
grobX("h1", 180),
grobY("h1", 180),
shape=1, ncp=10,
square=FALSE,
curvature=.4,
arrow=arrow(angle=20,ends="first") )
upViewport()
dev.off() # close the device
casperyc wrote:
> Hi there,
>
> This is now the code
>
> %%%%%
> library(grid)
>
> 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.7, y=0.5, gp=gpar(col=NA), default.units = "npc",
> name="h2", vp=vp)
> grid.text("s", x=0.3, y=unit(-1, "lines"), vp=vp2)
> grid.text("t", 0.7, unit(-1, "lines"), gp=gpar(col="red"), vp=vp2)
> grid.text("mu(s,t)", 0.5, unit(5, "lines"), vp=vp2)
>
> grid.curve(grobX("h2", 180),
> grobY("h2", 180),
> grobX("h1", 180),
> grobY("h1", 180),
> shape=1, ncp=10,
> square=FALSE,
> curvature=.4,
> arrow=arrow(angle=20,ends="first") )
>
> upViewport()
>
>
>
> %%%%%
>
> for this line:
> grid.text("mu(s,t)", 0.5, unit(5, "lines"), vp=vp2)
>
> how do I change "mu(s,t)" to the expression "mu"?
> I have tried
> grid.text(expression="mu(s,t)", 0.5, unit(5, "lines"), vp=vp2)
> grid.text(expression(mu(s,t)), 0.5, unit(5, "lines"), vp=vp2)
>
> both didnt work
>
> AND
>
> when I tried to save the output as PDF file
>
> it returns:
>
> Error in function (name) : Grob 'h2' not found
>
> I have no idea what to do?
>
>
>
More information about the R-help
mailing list