Return the xy.coordinates for the literal positions "bottomright", etc. as used to place legends.
ABCCoords(x = "topleft", region = "figure", cex = NULL, linset = 0, ...)
one out of "bottomright"
, "bottom"
, "bottomleft"
,
"left"
, "topleft"
, "top"
, "topright"
, "right"
, "center"
one out of plot
or figure
the character extension for the text.
line inset in lines of text.
the dots are passed to the strwidth()
and strheight()
functions in case there where more specific text formats.
nothing returned
The same logic as for the legend can be useful for placing texts, too. This function returns the coordinates for the text, which can be used in the specific text functions.
# NOT RUN {
plot(x = rnorm(10), type="n", xlab="", ylab="")
# note that plot.new() has to be called before we can grab the geometry
ABCCoords("bottomleft")
lapply(c("bottomleft", "left"), ABCCoords)
plot(x = rnorm(10), type="n", xlab="", ylab="")
text(x=(xy <- ABCCoords("bottomleft", region = "plot"))$xy,
labels = "My Maybe Long Text", adj = xy$adj, xpd=NA)
text(x=(xy <- ABCCoords("topleft", region = "figure"))$xy,
labels = "My Maybe Long Text", adj = xy$adj, xpd=NA)
plot(x = rnorm(10), type="n", xlab="", ylab="")
sapply(c("topleft", "top", "topright", "left", "center",
"right", "bottomleft", "bottom", "bottomright"),
function(x)
text(x=(xy <- ABCCoords(x, region = "plot", linset=1))$xy,
labels = "MyMarginText", adj = xy$adj, xpd=NA)
)
plot(x = rnorm(100), type="n", xlab="", ylab="",
panel.first={Bg(c("red", "lightyellow"))
grid()})
xy <- ABCCoords("topleft", region = "plot")
par(xpd=NA)
BoxedText(x=xy$xy$x, y=xy$xy$y, xpad = 1, ypad = 1,
labels = "My Maybe Long Text", adj = xy$adj, col=SetAlpha("green", 0.8))
# }
Run the code above in your browser using DataLab