[R] troubles with displaying legend on the plot

Косенков Кирилл Н Косенков Кирилл Н
Wed Apr 16 09:52:49 CEST 2003


Hi! It seems, that y-coord of your legend (1979,0), (0,0) located 
outside your coordinate system. 
par(usr=c(1979,2002,20,90),mar=c(7, 4, 4, 2) + 0.1)

You can use par('usr') to determine extremes of your coordinates 
for automatic legend placing. Or you can
legend(locator(1),[other options])
to place legend on your plot interactively.
Notice, that the y-coord has its 0 in the _bottom_ of figure region.

Wladimir Eremeev wrote:
> Dear colleagues,
> 
> I have troubles while trying to display legend on the plot.
> 
> I have data.frame fr
> 
> 
>>fr
> 
>    year  M1             M2
> 1  1979  58.85198     56.77303
> 2  1980  57.59725     55.93749
> 3  1981  57.32133     55.55232
> 4  1982  54.69320     53.10566
> 5  1983  56.58973     55.03811
> 6  1984  58.81363     56.97641
> 7  1985  58.35583     56.82091
> 8  1986  60.41842     58.45457
> 9  1987  58.75928     57.03679
> 10 1988  59.89553     58.69077
> 11 1989  51.03595     49.45001
> 12 1990  52.23915     50.96713
> 13 1991  46.50311     45.50370
> 14 1992  47.38811     46.31649
> 15 1993  48.58066     47.44610
> 16 1994  46.04452     44.82441
> 17 1995  46.41809     45.54565
> 18 1996  37.65783     36.48118
> 19 1997  60.16313     58.63771
> 20 1998  51.47550     50.43720
> 21 1999  52.56228     51.64243
> 22 2000  41.71746     40.79734
> 23 2001  44.71175     44.05241
> 24 2002  49.78033     47.91608
> 
> actually I've loaded it from MySQL database.
> 
> Now drawing this plot with the following plot.r
> 
> ===8<====
> op<-par(no.readonly=TRUE);
> 
> par(usr=c(1979,2002,20,90),mar=c(7, 4, 4, 2) + 0.1);
> 
> plot(fr$year,fr$M1
>      ,cex=0.8
>      ,type="o",ylim=c(20,90),xlim=c(1979,2002)
>      ,xlab="year",ylab="M, %"
>      ,pch=20
>      ,xaxt="n",
>      );
> 
> lines(fr$year,fr$M2);
> points(fr$year,fr$M2,pch=21)
> axis(1,at=c(1979:2002));
> 
> for(x in 1979:2002) {
>   abline(v=x, col = "lightgray", lty = "dotted");
> }
> for(y in seq(20,90,10)){
>   abline(h=y, col = "lightgray", lty = "dotted");
> }
> legend(1979,0,
>        legend=c("M1","M2"),
>        pch=c(20,21));
> 
> par(op);
> ===8<===
> 
> Legend doesn't appear.
> I tried different coordinates, (1979,0), (0,0),
> different colors, etc...
> 
> Nothing helps. What should I do to make the legend to appear?
> 
> I'm using R 1.6.2 for windows.
> OS: Windows NT workstation 4.0.
> 
> Thank you in advance.



More information about the R-help mailing list