Another possibility is the my.symbols function in the TeachingDemos package.  
You can define a polygon of your arrow (or other symbol), then use my.symbols 
to add it to an existing graph, the advantage of my.symbols is that the size of 
the arrow is absolute, not in terms of the scale of the original plot.

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.s...@imail.org
801.408.8111


> -----Original Message-----
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-
> project.org] On Behalf Of Rodrigo Aluizio
> Sent: Wednesday, March 11, 2009 4:22 AM
> To: 'Yihui Xie'
> Cc: R Help
> Subject: [R] RES: North Arrow (.png file) on a Map
> 
> Thanks a lot Yihui, It's perfect, in fact exactly identical the I have
> as a
> png file in my computer.
> Thank you so much.
> 
> Regards
> Rodrigo
> 
> -----Mensagem original-----
> De: Yihui Xie [mailto:xieyi...@gmail.com]
> Enviada em: quarta-feira, 11 de março de 2009 02:48
> Para: Rodrigo Aluizio
> Cc: R Help
> Assunto: Re: [R] North Arrow (.png file) on a Map
> 
> Is this "arrow" satisfactory for you?
> 
> north.arrow = function(x, y, h) {
>     polygon(c(x, x, x + h/2), c(y - h, y, y - (1 + sqrt(3)/2) * h),
> col = "black", border = NA)
>     polygon(c(x, x + h/2, x, x - h/2), c(y - h, y - (1 + sqrt(3)/2) *
> h, y, y - (1 + sqrt(3)/2) * h))
>     text(x, y, "N", adj = c(0.5, 0), cex = 4)
> }
> plot(1, type = "n", ylim = c(0, 1))
> north.arrow(1, 0.8, 0.3)
> 
> Regards,
> Yihui
> --
> Yihui Xie <xieyi...@gmail.com>
> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086
> Mobile: +86-15810805877
> Homepage: http://www.yihui.name
> School of Statistics, Room 1037, Mingde Main Building,
> Renmin University of China, Beijing, 100872, China
> 
> 
> 
> On Tue, Mar 10, 2009 at 7:21 PM, Rodrigo Aluizio <r.alui...@gmail.com>
> wrote:
> > Hi list.
> >
> > I would like to know how do I insert a North arrow, stored as a png
> file
> in
> > my computer, in a map? I found lots of post asking similar things,
> one of
> > them mentioned the pixmap package.  The map was done using map() and
> > shapefiles (the code is below). I'm using the pixmap () and addlogo()
> > functions. Well I can import the png with pixmap() function (I guess,
> once
> > there's no error message), but I can't put It on the map, I got an
> error
> > message telling me that:
> >
> >
> >
> > "Error at t(x...@index[nrow(x...@index):1, , drop = FALSE]) :
> >
> >  index out of limits"
> >
> >
> >
> > Well I tried changing coordinates but I always got the same result.
> How do
> I
> > do this correctly? Is there a better way?
> >
> >
> >
> > Thanks for the help and attention.
> >
> >
> >
> > Here is the complete map script:
> >
> >
> >
> > library(RODBC)
> >
> > library(maps)
> >
> > library(mapdata)
> >
> > library(maptools)
> >
> > library(pixmap)
> >
> > #Carregar Coordenadas e dados dos Pontos Amostrais
> >
> > Dados<-odbcConnectExcel('Campos.xls',readOnly=T)
> >
> > Coord<-sqlFetch(Dados,'CoordMed',colnames=F,rownames='Ponto')
> >
> > odbcClose(Dados)
> >
> > N<-pixmap('Norte.png',nrow=166,ncol=113)
> >
> > # Carregar pontos e shapes
> >
> >
> Batimetria<-
> readShapeSpatial('C:/Users/Rodrigo/Documents/UFPR/Micropaleontol
> > ogia/Campos/ShapeFiles/Batimetria_BC.shp')
> >
> >
> Estados<-
> readShapeSpatial('C:/Users/Rodrigo/Documents/UFPR/Micropaleontologi
> > a/Campos/ShapeFiles/Estados_Sudeste.shp')
> >
> >
> Faciologia<-
> readShapeSpatial('C:/Users/Rodrigo/Documents/UFPR/Micropaleontol
> > ogia/Campos/ShapeFiles/Faciologia_BC.shp')
> >
> > # Mapa com os Pontos da Bacia
> >
> >
> postscript('MapaCampos.eps',paper='special',onefile=F,horizontal=F,widt
> h=3.5
> > ,height=4.5,bg='white',pointsize=3)
> >
> > par(mar=c(3,2,2,0))
> >
> >
> map('worldHires','brazil',ylim=c(23.9,20.3),xlim=c(42.1,39.2),type='n')
> >
> >
> plot(Faciologia,ylab='',xlab='',col=c('lightgreen','lightgreen','lightg
> reen'
> >
> ,'lightgreen','lightgreen','lightgray','lightgray','lightgray','lightgr
> ay','
> >
> lightgray','lightgray','lightgray','lightgray','lightgray','lightgray',
> 'ligh
> >
> tgray','lightgray','lightgray','lightgray','lightgray','lightgray','lig
> htyel
> > low','lightyellow','lightyellow'),add=T,lwd=0.5,border=0)
> >
> >
> plot(Batimetria,ylab='',xlab='',col='darkgray',lty='solid',lwd=0.2,add=
> T)
> >
> > plot(Estados,ylab='',xlab='',lty='solid',add=T,lwd=0.8)
> >
> >
> text(Coord$Longitude[Coord$Réplicas=='1'],Coord$Latitude[Coord$Réplicas
> =='1'
> > ],rownames(Coord)[Coord$Réplicas=='1'],col='red',cex=0.5,font=2)
> >
> >
> text(Coord$Longitude[Coord$Réplicas=='2'],Coord$Latitude[Coord$Réplicas
> =='2'
> > ],rownames(Coord)[Coord$Réplicas=='2'],col='yellow',cex=0.5,font=2)
> >
> >
> text(Coord$Longitude[Coord$Réplicas=='3'],Coord$Latitude[Coord$Réplicas
> =='3'
> > ],rownames(Coord)[Coord$Réplicas=='3'],col='blue',cex=0.5,font=2)
> >
> > points(Coord$Longitude,Coord$Latitude-0.045,pch=20,cex=0.7)
> >
> > text(c(41.5,41.3),c(21.7,20.6),c('RJ','ES'))
> >
> > axis(1,xaxp=c(42.1,39.2,2),cex.axis=1)
> >
> > axis(2,yaxp=c(23.9,20.3,4),cex.axis=1)
> >
> > title(main='Bacia')
> >
> >
> legend(40.2,23.5,c('Uma','Duas','Três'),pch=21,cex=1,pt.bg=c('red','yel
> low',
> > 'blue'),bty='n',pt.cex=2,pt.lwd=0.6,title='Réplicas')
> >
> >
> legend(39.8,23.5,c('Areia','Calcário','Lama'),pch=21,cex=1,pt.bg=c('lig
> htyel
> >
> low','lightgray','lightgreen'),bty='n',pt.cex=2,pt.lwd=0.6,title='Facio
> logia
> > ')
> >
> > addlogo(N,px=c(40,39.8),py=c(21,20.8))
> >
> > dev.off()
> >
> > q('no')
> >
> >
> >
> > -------------------------------------------------------------
> >
> > MSc. Rodrigo Aluizio <mailto:r.alui...@gmail.com>
> >
> > Centro de Estudos do Mar/UFPR
> > Laboratório de Micropaleontologia
> >
> >
> >        [[alternative HTML version deleted]]
> >
> >
> > ______________________________________________
> > R-help@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
> >
> 
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to