RES: North Arrow (.png file) on a Map
Also, see
# install.packages('sp')
example('spplot', package='sp')
Kingsford Jones
On Wed, Mar 11, 2009 at 9:38 AM, Greg Snow <Greg.Snow at imail.org> wrote:
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.snow at imail.org 801.408.8111
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at 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:xieyihui at 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 <xieyihui at 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.aluizio at 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 at index[nrow(x at 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.aluizio at gmail.com>
Centro de Estudos do Mar/UFPR
Laborat?rio de Micropaleontologia
? ? ? ?[[alternative HTML version deleted]]
______________________________________________ R-help at 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 at 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 at 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.