Hi R-Help,
I would like to make filled contour maps of ocean data overlaid by
costlines from the map package.
I can draw the filled contours and the coastlines om the same plot, but
the filled contour also covers part of the land. To get rid of that I
tried to draw a filled coastline map on top of the filled contour, but
the filled map only draws the closed contours - so most of the land is
missing.
Example:
map("worldHires",xlim=c(0,15),ylim=c(50,60)) #Draw relevant region
(North Sea and Denmark waters)
map("worldHires",xlim=c(0,15),ylim=c(50,60),fill=TRUE) # This only draws
Denmark and Holland (Sweden, uk, Germany etc. disappears because they
are not closed polygons).
Any hint on how to fix this problem or a different approach is most
welcome.
Janus
filled maps
3 messages · Janus Larsen, antonio rodriguez, Roger Bivand
Hi,
Some time ago, Roger Peng posted this solution, which I found very useful:
junk.mat <- matrix(rnorm(1600), 16, 100)
contour.mat <- ifelse(junk.mat < 2, 0, junk.mat)
filled.contour(junk.mat, color = terrain.colors,
plot.axes = contour(contour.mat, levels = 1,
drawlabels = FALSE, axes = FALSE,
frame.plot = FFALSE, add = TRUE))
The 'plot.axes' argument to filled.contour() gives you access to the
coordinate system in the actual plotting area. However, you will notice
that the axes are missing. You need to add them explicitly, as in:
filled.contour(junk.mat, color = terrain.colors,
plot.axes = { contour(contour.mat, levels = 1,
drawlabels = FALSE, axes = FALSE,
frame.plot = FFALSE, add = TRUE);
axis(1); axis(2) } )
Cheers,
Antonio
-----Mensaje original-----
De: r-help-bounces+arv=ono.com at stat.math.ethz.ch
[mailto:r-help-bounces+arv=ono.com at stat.math.ethz.ch]En nombre de Janus
Larsen
Enviado el: martes, 03 de febrero de 2004 9:36
Para: R-help at stat.math.ethz.ch
Asunto: [R] filled maps
Hi R-Help,
I would like to make filled contour maps of ocean data overlaid by
costlines from the map package.
I can draw the filled contours and the coastlines om the same plot, but
the filled contour also covers part of the land. To get rid of that I
tried to draw a filled coastline map on top of the filled contour, but
the filled map only draws the closed contours - so most of the land is
missing.
Example:
map("worldHires",xlim=c(0,15),ylim=c(50,60)) #Draw relevant region
(North Sea and Denmark waters)
map("worldHires",xlim=c(0,15),ylim=c(50,60),fill=TRUE) # This only draws
Denmark and Holland (Sweden, uk, Germany etc. disappears because they
are not closed polygons).
Any hint on how to fix this problem or a different approach is most
welcome.
Janus
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html --- Incoming mail is certified Virus Free. ---
On Tue, 3 Feb 2004, Janus Larsen wrote:
Hi R-Help,
I would like to make filled contour maps of ocean data overlaid by
costlines from the map package.
I can draw the filled contours and the coastlines om the same plot, but
the filled contour also covers part of the land. To get rid of that I
tried to draw a filled coastline map on top of the filled contour, but
the filled map only draws the closed contours - so most of the land is
missing.
Example:
map("worldHires",xlim=c(0,15),ylim=c(50,60)) #Draw relevant region
(North Sea and Denmark waters)
map("worldHires",xlim=c(0,15),ylim=c(50,60),fill=TRUE) # This only draws
Denmark and Holland (Sweden, uk, Germany etc. disappears because they
are not closed polygons).
Looks as though you can use the regions= argument:
res <- map("worldHires",xlim=c(0,15),ylim=c(50,60), plot=FALSE,
+ namesonly=TRUE)
res
[1] "Denmark" "USSR" [3] "Netherlands" "Netherlands:IJsselmeer" [5] "France" "Czechoslovakia" [7] "Poland" "Germany" [9] "Luxembourg" "Belgium" [11] "Norway" "Sweden" [13] "Germany:Usedom" "Netherlands:South" [15] "Germany:Langeoog" "Denmark:Mors" [17] "Denmark:Mon" "Lake Fjerritslev" [19] "UK:Great Britain" "Denmark:Samso" [21] "Netherlands:Ameland" "Netherlands:Terschelling" [23] "Denmark:Als" "Denmark:Sjaelland" [25] "Denmark:Fyn" "Netherlands:Schiermonnikoog" [27] "Denmark:Laeso" "Sweden:Orust" [29] "Germany:Borkum" "Denmark:Lolland" [31] "Netherlands:Texel" "Netherlands:Flevoland" [33] "Norway:Sunnhordland" "UK:Isle of Sheppey" [35] "Denmark:Langeland" "Denmark:Bornholm" [37] "Germany:Fehmarn" "Germany:Rugen" [39] "Germany:Norderney" "Norway:Karmoy"
map("worldHires",xlim=c(0,15),ylim=c(50,60))
map("worldHires",regions=res, fill=TRUE, add=TRUE)
fixes it for me. Curiously, the longitudes add 2.5 degrees on each side. Roger PS. For film viewers who enjoyed "Good bye, Lenin!", we still provide region="USSR" above!
Any hint on how to fix this problem or a different approach is most welcome. Janus
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Roger Bivand Econonic Geography Section, Department of Economics, Norwegian School of Economics and Business Administration, Breiviksveien 40, N-5045 Bergen, Norway, voice: +47-55959355, fax: +47-55959393; Roger.Bivand at nhh.no