[R] How to plot a legend centered only on the x axis
Duncan Murdoch
murdoch.duncan at gmail.com
Fri May 12 02:01:54 CEST 2017
On 11/05/2017 2:36 PM, Antonio Silva wrote:
> Hello r-users
>
> I want to plot some barplots inside a looping with the legend placed
> outside the plotting area.
>
> No matter the number of bars I want the legend to be placed centered on the
> x-axis.
>
> See the example below
>
> for(i in 1:10) {
> var_1 <- sample(1000:100000,sample(3:8,1))
> ymax <- max(var_1)
> b<-barplot(var_1,col="blue")
> var_2 <- sample(1000:ymax,length(var_1))
> lines(rowSums(b),var_2,type="o",col="red",pch=16)
> par(xpd=TRUE)
> legend(*1.1*
> ,ymax*-0.072,c("var_1","var_2"),horiz=T,cex=1.3,bty="n",pch=c(15,16),col=c("blue","red"),lty=c(0,1),lwd=c(0,2),pt.cex=2)
> readline(prompt="Press [enter] to continue")
> }
>
> What I should use as x position in legend(x,y, ...), instead of *1.1*, to
> have the legend centered on the x-axis?
>
> I would love to use something like legend(x="center",y=ymax*-0.072, ... but
> it did not worked.
>
> I appreciate any suggestions. Best regards.
Instead of "center", use "top" or "bottom". See the 2nd last example in
examples(legend) for the possibilities.
If you want the legend outside the plotting area, set "inset" and "xpd"
arguments. For example,
plot(1,1)
legend("top", pch = 1, legend = "point", inset = -0.1, xpd = TRUE)
Duncan Murdoch
More information about the R-help
mailing list