Description Usage Arguments Details Value Side Effects See Also Examples
Creates a plot of given data, as the "plot" function but allows input data to have latitude and longitude coordinates.Coordinates are latitude and longitude in degrees (default) or x, y in m (or other units).
1 2 3 4 5 6 7 8 9 | geoplot(lat = NULL, lon = 0, type = "p", pch = "*", xlim = c(0, 0),
ylim = c(0, 0), b0 = 65, r = 1.05, country = "default", xlab = " ",
ylab = " ", option = "cut", grid = TRUE, new = FALSE, cont = FALSE,
cex = 0.9, col = 1, lcont = c(0.13, 0.21), plotit = TRUE,
reitur = FALSE, smareitur = FALSE, reittext = FALSE, cexrt = 0.7,
csirt = NULL, axratio = 1, lwd = 0, lwd1 = 0, locator = FALSE,
axlabels = TRUE, projection = "Mercator", b1 = b0, dlat = 0,
dlon = 0, jitter = 0, zoom, csi = NULL, xaxdist = 0.2,
yaxdist = 0.3)
|
lat,lon |
Latitude and longitude of data (or x and y coordinates), negative for southern latitudes and western longitudes. May be supplied as two vectors or as a list or dataframe lat (or x) including vectors lat\$lat and lat\$lon (x\$x and x\$y if projection = none). If xlim and ylim are given the arguments lat and lon are not required. |
type |
Options are the same as in the plot function i.e "l" for lines, "n" for not plotting the data, "p" for points etc. Default value is "p" |
pch |
Type of symbol drawn in points. Default is "*". Any other character or symbol can be used, seet the help on points. |
xlim |
x limits of drawing (longitudinal direction). If not given the program finds the limits as the range of the data times the parameter r (1.05 default). xlim can be a list (dataframe) with components lat and lon (x and y if projection = "none"). |
ylim |
y limits of drawing (latitudinal direction). If not given and xlim is not a list the program finds the ulimits as the range of the data times the parameter r (1.05). |
b0 |
Base latitude for the Mercator or Lambert transform. Default value is 65 (typical for Iceland). If Mercator transform is used values close to the mean of the data are recommended except the data extend very far north, (> 75 th degree) then b0 should be close to the northern limits of the data). |
r |
Size of area which is plotted. r = 1.0 means exactly the range of the datapoints, but r = 1.5 means that the range is 1.5 times the range of data. Default value is 1.05. Does not matter if xlim and ylim are given. |
country |
Country that is plotted. Options are: |
xlab |
X-label. Default value is " " |
ylab |
Y-label. Default value is " " |
option |
Can be either "cut" or "nocut". If "nocut" the plot always fills the plotted area but if "cut" the plot does not fill it in the direction where the range of data is minimum. It has to be kept in mind that the program always keeps the same scale vertically and horizontally. Default value is "cut". Not effective when contourplots are plotted. |
grid |
If grid is TRUE meridians and paralells are plotted, else not. Default value is TRUE. |
new |
If new is FALSE the plot is added to the current plot otherwise a new plot is made. Default value is FALSE. Similar to the Splus command "par(new = TRUE)". |
cont |
A parameter to reserve space for legend for contours besides the plot. Default value is "FALSE". Rarely used at the legends are usually put somewhere in the graph. |
cex |
Relative size of character and symbols (see the help on the parameter cex). The size of plotted characeters is cex time the parameter csi that can be seen by par()\$csi. In earlier versions of geoplot the parameter csi was set but csi is a parameter that can not be set in R. |
col |
The color number used to for the plot. Default value is 1 that is usually black. |
lcont |
Limits of area preserved for lables and contour plot as ration of plotting area. Default value is c(0.13, 0.21). That means that the labels take 13% of the plotting area but the figure 79%. (Labels to left, figure to left.) 0.08 to 0.1 is a reasonable difference. Only used when cont = TRUE which is seldom used as described erlier. |
plotit |
If FALSE plot is only initialized but not plotted. If used other programs are used to fill the plot (geolines, geocontour, geopolygon etc). Most often used in multiple plots. Used in connection with geocontour.fill to fewer files but the plot command is given again with new = TRUE when geocontour.fill is called. Plot = FALSE does not work if axeslabels = FALSE. Something seems to have to be on the graph for proper setup. |
reitur |
Reitur means statistical square in Icelandic. If true the division of the axes is idendical to the distribution of the ocean around Iceland in statistical squares. Means dlat = 0.5;dlon = 1. |
smareitur |
If true the division of the axes is idendical to the distribution of the ocean around Iceland in subsquares.dlat = 0.25;dlon = 0.5 |
reittext |
If true the number of each square is written in the center of the square. Only meaningful for Icelandic waters. |
cexrt |
Relative size of reittext text in statistical squares (cexrt*csi). Default value is 0.7. |
csirt |
Size of reittext. Default value is 0.1. Only for compatibility with older Splus programs but cexrt should be used as the parameter csi can not be set in R: |
axratio |
Parameter usually not changed by the user. |
lwd |
Line width for plot (grid and axes). Default value is the value set when the program was called.(usually 1). Higher values correspond to wider lines. |
lwd1 |
Line width for plot country. Default value is the value set when the program was called (usually 1). Higher values correspond to wider lines. |
locator |
Some kind of a simple zoom command. If locator is TRUE the user points with the mouse on the limits of the plot he wants to make. Needs a plot made by geoplot on the screen. Same as if zoom is used. |
axlabels |
If FALSE no numbers are plotted on the axes. Default value is TRUE. |
projection |
Projection used to make the plot. Options are "Mercator", "none" and "Lambert". Default value is "Mercator". If projection = "none" data is assumed to be x, y. |
b1 |
Second latitude to define Lambert projection. |
dlat |
Defines the grid, to make a grid on the lat axis, 1 is a number on axis and a line at every deg. Not usualy set by user. |
dlon |
Same as dlat, but for lon. |
jitter |
useful if many datapoints have the same coordinates, points are jittered randomly to make common values look bigger. jitter = 0.016 is often about right but you may want to have jitter smaller or bigger varying on plot. |
zoom |
If TRUE the mouse is used to point to two points on the current map with those two new points becoming the new corner points on a new map. . Same as the parameter locator in older geoplot versions. |
csi |
Size of character. This parameter can not be set in R but for compatibility with old Splus scripts the parameter cex is readjusted by cex = cex*csi/0.12. Use of this parameter is not recommended. Default value is NULL i.e not used. |
xaxdist |
Distance from plot to the labels on the xaxis (dist or r argument to geoaxis. Default value is 0.2 but higher value mean that axlabels is further away from the plot. Further flexibility with axes can be reached by calling geoplot with axlabels = FALSE and geoaxis aferwards. |
yaxdist |
Distance from plot to the labels on the yaxis (dist or r argument to geoaxis. Default value is 0.3 but higher value mean that axlabels is further away from the plot. |
The program performs the Mercator(default) or Lambert transformation of the data in degrees and plots it. The plot is scaled such that 1cm in vertical and horizontal directions correspond to the same distance. The program is used to initialize drawings to be used by programs, i.e. geolines, geopolygon, geopoints, geotext, geosymbol, geogrid, geocontour.fill, geoimage and geocontour. The inputs to the program are decimal numbers negative for western longitudes e.g.lat = 65.75 lon = -25.8. Whether the program interprets data as lat, lon or x, y depends on the parameter projection. If projection is "none" data is interpreted as x, y else lat, lon. When the data is interpreted as x, y lists are assumed to have the components \$x and \$y, else \$lat and \$lon.Geoplot is often used with type = "n" so the datapoints used to set up the drawing are not seen. Calling geoplot with plotit = FALSE sets up the drawing without putting anything on the screen ( or page).
No values are returned. The graphical setup is stored in a global list called geopar. That list is accessed by other program that use the same setup.
There should be no side effects. The program changes a number of graphical parameters but the old parameters are restored before.
geolines
, geopolygon
,
geotext
, geosymbols
, geogrid
,
geopar
, geocontour.fill
,
geolocator
, geocontour
,
reitaplott
, geodefine
, Proj
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | ## Not run: Examples shown here below also include calls to the other functions
in the geopackage. Further explanations of these functions can be
found in the appropriate help files.
Contour plot of haddock catch in icelandic waters based on logbooks.
A color scheme
where color 0 is white, 1 black and 2-150 gradually changing from
white to black is used. The data is for 6 years and is stored in a
list hadcatch with 6 components. Circles showing haddock catch in
the Icelandic groundfish survey is added on top of the plot with the
function geosymbols but utbrteg is a dataframe with information on all
catch in the Icelandic groundfish survey (all names in Icelandic ysa
means haddock and ar year). The function bwps is a call to the
postscript function with the indicated color scheme. Designed for
Splus and has to be changed for R as the color schemes there are quite
different. This applies to all the examples below.
lev <- c(0.5, 1, 2, 4, 6)
col <- c(0, 30, 50, 70, 90, 150)
txt <- c(1993, 1995, 2000, 2002, 2005, 2006)
par(mfrow = c(3, 2));par(mex = 0.01)
bwps(file = "hadcatchutbr.ps", height = 6.8, width = 6.5, horizontal = FALSE)
for(i in 1:6) {
SMB.std.background(grid = FALSE, axlabels = FALSE)
geocontour.fill(hadcatch[[i]], levels = lev, col = col,
white = TRUE, working.space = 2e6)
gbplot(200)
geotext(67.3, -27.6, txt[i], csi = 0.16, adj = 0)
geopolygon(island, col = 0);geolines(island)
tmp <- utbrteg[utbrteg$ar == txt[i], ] # select the year
geosymbols(tmp, z = tmp$ysa.kg, circles = 0.2,
sqrt = TRUE, lwd = 1)# amount of haddock
geopoints(tmp, pch = 16, csi = 0.05)
}
dev.off()
# plot x, y data
geoplot(x$x, x$y, projection = "none", type = "n")
geoplot(x, projection = "none", type = "n")
# does the same thing.
# The packages maps and mapdata need to be installed
# worldHires is a very detailed database of coastlines from the
# package mapdata. Could be problematic if used with fill = TRUE)
# Allowed.size is the maximum allowed size of polygons.
library(map) # world coastlines and programs
library(mapdata) # more detailed coastlines
geoplot(xlim = c(20, 70), ylim = c(15, 34))
geoworld(database = "worldHires", fill = TRUE, col = 30, allowed.size = 30000)
geoplot(xlim = c(20, 70), ylim = c(15, 34), dlat = 10, dlon = 10)
geoworld(database = "world", fill = TRUE, col = 30) #
geoplot(xlim = c(-10, 70), ylim = c(71, 81), b0 = 80,
dlat = 2, dlon = 10) # 0 must be high here else
geoworld(database = "world", fill = TRUE, col = 30) #the plot fails.
# Lambert projection,
geoplot(xlim = c(-10, 70), ylim = c(71, 81),
dlat = 2, dlon = 10, projection = "Lambert")
geoworld(database = "world", fill = TRUE, col = 30)
# Lambert projection, get the axis closer with the mgp command
par(mgp = c(2, 0, 0))
geoplot(xlim = c(-10, 70), ylim = c(71, 81),
dlat = 2, dlon = 10, projection = "Lambert", cex = 1.1)
geoworld(database = "world", fill = TRUE, col = 30)
# Example with capelin data. (lodna meanns capelin). lodna.2 is a
# data.frame with components lat, lon and z.
geoplot(lodna.2, type = "l")
geopoints(lodna.2)
geosymbols(lodna.2, z = lodna.2$z, colplot = TRUE,
parbars = 0.05, levels = vor.levels, label.location = labloc)
geoplot(lodna.2, type = "l")
geosymbols(lodna.2, z = lodna.2$z, perbars = 0.1)
geoplot(lodna.2, type = "l")
geosymbols(lodna.2, z = log(1+lodna.2$z), perbars = 0.1)
limits <- list(lat = c(63, 68), lon = c(-30, -10))
geoplot(xlim = limits, type = "n", grid = FALSE, axlabels = TRUE, plot = FALSE)
tmp <- geoexpand(lodna.2.grd) # expand the grid
# has defined ther area vor.area and data outside it are set to NA.
i <- geoinside(tmp, vor.area.new, option = 0)
zgr <- z.lodna.2;zgr[-i] <- NA
geocontour.fill(lodna.2.grd, z = zgr, white = TRUE,
label.location = labloc, levels = vor.levels)
geoplot(xlim = limits, type = "n", grid = FALSE, axlabels = TRUE, new = TRUE)
#geolines(lodna.2, lwd = 1)
gbplot(c(200, 500)) # Depth contours.
# make a plot of number within a square, calculate the total number of
#cod (torskur) within a square (reitur) and put the text number of
#square and total number of cod in the center of the square (number of
#cod below number of square). Apply.shrink is similar to tapply
#returning the data in different form and is included with the geo library
geoplot(island, r = 1.2, type = "n", reitur = TRUE)
x <- apply.shrink(data$torskur.stk, data$reitur, sum,
names = c("reitur", "torskur.stk"))
x1 <- r2d(x$reitur)
geotext(x1, z = paste(x$reitur, round(x$torskur.stk, 1), sep = "\n"))
# Plot filled circles. The color scheme used is the same as described
# color 0 white, 1 black and 2 - 155 white-black see bwps
# in geosymbols the argument color means size (in inches)
# when the fill.circles = TRUE. The data used AfliBySquareMonthYear have
# the columns year, month , square and catch.
# the function r2d changes square (reitur in Icelandic) to position
# Text is put in the middle of the circles where catch exceeds 1000
# tonnes.
my.colors = c(0.004, 0.04, 0.1, 0.15, 0.20, .25, 100)
lev <- c(0.2, 2, 7.5, 10, 20, 50)
yy <- c(1932:1939)
tmp4 <- AfliBySquareMonthYear
tmp4$catch <- tmp4$catch/1000
for (ar in yy) {
bwps(file = paste(ar, ".ps", sep = ""))
par(omi = c(0, 0, 0, 2))
par(mfrow = c(4, 3))
par(mex = 0.01)
for(man in 1:12){
tmp1 <- tmp4[tmp4$year == ar & tmp4$month == man, ]
SMB.std.background(axlabels = FALSE, country = "none", plotit = FALSE)
if(nrow(tmp1) > 0) {
tmp2 <- apply.shrink(tmp1$catch, tmp1$square, sum,
names = c("square", "catch"))
tmp2 <- tmp2[order(-tmp2$catch), ]
tmp3 <- data.frame(r2d(tmp2$square))
geosymbols(tmp3, z = tmp2$catch, fill.circles = TRUE, col = 60,
levels = lev, colors = my.colors, bordercol = 0, border = TRUE)
geopolygon(island, col = 30)
geolines(eyjar, lwd = 3, col = 30)
j <- tmp2$catch > 1
if(any(j)) {
tmp3 <- tmp3[j, ]
tmp2 <- tmp2[j, ]
geotext(lat = tmp3$lat, lon = tmp3$lon, z = tmp2$catch,
angle = 45, csi = 0.1)
}
geotext(lat = c(65.2), lon = (-18), z = paste(month.abb[man],
round(sum(tmp2$catch, na.rm = TRUE)), sep = "\n"), csi = 0.2)
}
else {geotext(lat = c(65.2), lon = (-18),
z = paste(month.abb[man], "0", sep = "\n"), csi = 0.2)}
}
geotext(63, -10, ar, adj = 1, csi = 0.18)
dev.off()
}
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.