[R] Legend help needed

Adaikalavan Ramasamy ramasamy at cancer.org.uk
Mon Nov 15 13:11:20 CET 2004


Sorry typo. The last line should read

legend(1500, 9000, legend=paste("Data from", sfiles), pch=1:n, col=1:n )
                                                                   ^^^

On Mon, 2004-11-15 at 11:39, Adaikalavan Ramasamy wrote:
> You have not called legend() in your codes below, so we do not know what
> your problem is. See other comments below.
> 
> On Mon, 2004-11-15 at 01:08, Sean David Richards wrote:
> > R : Version 1.9.1
> > 
> > Hi,
> > 
> > Am having trouble adding a legend to scatterplot. R code is shown below. 
> > I have tried various incantations to add a legend (using the legend() 
> > function) to the resulting plot but without any success. Looks like it 
> > should be simple but I must be missing something. Any pointers would be 
> > welcome.
> > Have looked at help(legend) etc.
> 
> help(legend) provides many nice examples. Here is a simplified one :
> 
> x <- seq(-pi, pi, len = 65)
> plot(x, sin(x), type="l", lty=1, col=1)
> lines(x, cos(x), type="l", lty=2, col=2)
> legend(-pi, 1, legend=c("sin", "cosine"), lty=1:2, col=1:2)
> 
> Or you can replace the last line with 
>  legend(locator(1), legend=c("sin", "cosine"), lty=1:2, col=1:2)
> where the legend will be placed on mouse left click.
> 
> > --8<----------------------------------------------------------------------
> > ---
> > 
> > sfiles <- c("72_12_12_V.csv ",
> >             "150_25_15_V.csv",    
> >             "150_25_20_V.csv",    
> >             "150_25_25_V.csv",    
> >             "150_25_40_V.csv",    
> >             "150_25_60_V.csv",    
> >             "150_25_90_V.csv",    
> >             "240_40_40_V.csv")                  
> >             
> > ## process each file in list
> > for (i in 1:length(sfiles)) {
> > data <- read.csv(paste("../data/",sfiles[i],sep=""))
> > 
> > ## assign columns to some nice names
> > K <- data[,8]
> > AN <- data[,3] * (data[,2] - data[,4])
> > 
> > ## plot K against AN
> 
> Please give a simplified example. You do not need to show us all the
> preprocessing steps. It can be distracting.
> 
> > if ( i == 1) {
> >     plot(AN, K, ylim=c(1000,9000), xlim=c(0,1500), 
> >           xlab="Area above Notch (mm)",
> >           main="Size Effect Specimens")
> >     par(new=TRUE)                        
> >     }
> > else{
> >     plot(AN,K, pch=(i),ylim=c(1000,9000), xlim=c(0,1500), 
> >           axes=FALSE,xlab="")
> >     par(new=TRUE)
> >     }
> > }
> 
> Have you considered points() or lines() here ? You could simplify to
> 
> plot(0,1000, type="n", xlim=c(0,1500), ylim=c(1000,9000),
>      xlab="Area above Notch (mm)", main="Size Effect Speciments")
> 
> n <- length(sfiles)
> 
> for (i in 1:n) {
>   data <- read.csv(paste("../data/",sfiles[i],sep="")) 
>   K    <- data[,8]
>   AN   <- data[,3] * (data[,2] - data[,4])
> 
>   points( AN, K, pch=i, col=i )
> }
> 
> legend( 1500, 9000, legend=paste("Data from", sfiles), pch=1:n, col=i )
> 
> > --8<----------------------------------------------------------------------
> > ---
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
-- 
Adaikalavan Ramasamy                    ramasamy at cancer.org.uk
Centre for Statistics in Medicine       http://www.ihs.ox.ac.uk/csm/
Cancer Research UK                      Tel : 01865 226 677
Old Road Campus, Headington, Oxford     Fax : 01865 226 962




More information about the R-help mailing list