legend {base} | R Documentation |
This function can be used to add legends to plots. Note that a call
to the function locator
can be used in place of the x
and y
arguments.
legend(x, y, legend, fill, col = "black", lty, lwd = 1, pch, bty = "o", bg = par("bg"), cex = 1, xjust = 0, yjust = 1, x.intersp = 1, y.intersp = 1, adj = 0, text.width = NULL, merge = do.lines && has.pch)
x,y |
the x and y location of the legend.
x can be a list with x and y components. |
legend |
a vector of text values or an expression
of length >= 1 to appear in the legend. |
fill |
if specified, this argument will cause boxes filled with the specified colors to appear beside the legend text. |
col |
the color of points or lines appearing in the legend. |
lty,lwd |
the line types and widths for lines appearing in the legend. One of these two must be specified for line drawing. |
pch |
the plotting symbols appearing in the legend, either as vector of 1-character strings, or one (multi character) string. Must be specified for symbol drawing. |
bty |
the type of box to be drawn around the legend. |
bg |
the background color for the legend box. |
cex |
character expansion factor relative to current
par("cex") . |
xjust |
how the legend is to be justified relative to the legend x location. A value of 0 means left justified, 0.5 means centered and 1 means right justified. |
yjust |
the same as xjust for the legend y location. |
x.intersp |
character interspacing factor for horizontal (x) spacing. |
y.intersp |
the same for vertical (y) line distances. |
adj |
numeric of length 1 or 2; the string adjustment for legend
text. Useful for y-adjustment when labels are
plotmath expressions. |
text.width |
the width of the legend text in x ("user" )
coordinates.
Defaults to the proper value computed by strwidth(legend) . |
merge |
logical; if TRUE , ``merge'' points and lines but
not filled boxes. Defaults to TRUE if there are points and lines. |
``Attribute'' arguments such as col
, pch
, lty
,
etc, are recycled if necessary. merge
is not.
plot
, barplot
which uses legend()
, and
text
for more examples of math expressions.
# Run the example in `?matplot' or the following: leg.txt <- c("Setosa Petals", "Setosa Sepals", "Versicolor Petals", "Versicolor Sepals") y.leg <- c(4.5, 3, 2.1, 1.4, .7) cexv <- c(1.2, 1, 4/5, 2/3, 1/2) matplot(c(1,8), c(0,4.5), type = "n", xlab = "Length", ylab = "Width", main = "Petal and Sepal Dimensions in Iris Blossoms") for (i in seq(cexv)) { text(.9, y.leg[i], paste("cex=",formatC(cexv[i])),srt=90,adj=1, cex=.7) legend(1, y.leg[i], leg.txt, pch = "sSvV", col = c(1, 3), cex = cexv[i]) } # `merge = TRUE' for merging lines & points: x <- seq(-pi, pi, len = 65) plot(x, sin(x), type = "l", ylim = c(-1.2, 1.8), col = 3, lty = 2) points(x, cos(x), pch = 3, col = 4) lines(x, tan(x), type = "b", lty = 1, pch = 4, col = 6) title("legend(..... lty = c(2, -1, 1), pch = c(-1,3,4), merge = TRUE)", cex.main = 1.1) legend(-1, 1.9, c("sin", "cos", "tan"), col = c(3,4,6), lty = c(2, -1, 1), pch = c(-1, 3, 4), merge = TRUE, bg='gray90') ##--- log scaled Examples ------------------------------ leg.txt <- c("a one", "a two") par(mfrow = c(2,2)) for(ll in c("","x","y","xy")) { plot(2:10, log=ll, main=paste("log = '",ll,"'", sep="")) abline(1,1) lines(2:3,3:4, col=2) # points(2,2, col=3) # rect(2,3,3,2, col=4) text(c(3,3),2:3, c("rect(2,3,3,2, col=4)", "text(c(3,3),2:3,\"c(rect(...)\")"), adj = c(0,.3)) legend(list(x=2,y=8), legend = leg.txt, col=2:3, pch=1:2, lty=1, merge=T)#, trace=T) } par(mfrow=c(1,1)) ##-- Math expressions: ------------------------------ plot(x, sin(x), type="l", col = 2,xlab=expression(phi),ylab=expression(f(phi))) abline(h=-1:1, v=pi/2*(-6:6), col="gray90") lines(x, cos(x), col = 3, lty = 2) ex.cs1 <- expression(plain(sin) * phi, paste("cos", phi))# 2 ways legend(-3, .9, ex.cs1, lty=1:2, col=2:3, adj = c(0, .6))# adj y ! x <- rexp(100, rate = .5) hist(x, main = "Mean and Median of a Skewed Distribution") abline(v = mean(x), col=2, lty=2, lwd=2) abline(v = median(x), col=3, lty=3, lwd=2) ex12 <- expression(bar(x) == sum(over(x[i], n), i==1, n), hat(x) == median(x[i], i==1,n)) legend(4.1, 30, ex12, col = 2:3, lty=2:3, lwd=2)