View source: R/plot3d_points.R
| plot3d.points | R Documentation |
Given a list of points' coordinates and the values
observed at those points, return a scatterplot with points located
as specified by the coordinates and coded by color and/or size to
represnt the observed value at the location. This code is basically
a wrapper for a call to the function points.geodata in
the geoR package.
plot3d.points(x, y, z, zlim = range(z, na.rm = TRUE),
add = FALSE, col = heat.colors(12), xlab, ylab,
pch = 21, cex.min = 1, cex.max = 1,
symbol.border.col = "black",
plt.beyond.zlim = FALSE, ...)
x |
x-coordinates of locations at which response values |
y |
y-coordinates of locations at which response values |
z |
Response values |
zlim |
Vector of minimum and maximum values of |
add |
If FALSE (default), the function will begin a new plot. If TRUE, adds scatterplot to a pre-existing plot. |
col |
Color range to use for the scatterplot, with the first
color assigned to zlim[1] and last color assigned to zlim[2].
Default is “heat.colors(12)”, as it is for |
xlab |
The label for the x-axis. If not specified by the user,
defaults to the expression the user named as parameter |
ylab |
The label for the y-axis. If not specified by the user,
defaults to the expression the user named as parameter |
pch |
The point symbol to use. Possible values are 21, 22, 23,
24, and 25. This is because |
cex.min |
Minimum amount to shrink/expand the point symbols. |
cex.max |
Maximum amount to shrink/expand the point symbols. |
Parameters cex.min and cex.max control the minimum
and maximum amounts to shrink/expland the points, based on the
value of z. By default, these are both set to one, which
makes all the points the same size. For more information, see
the help page for points.geodata.
symbol.border.col |
This controls the color of the border around the plotting symbol. By default, it is black. If a border is not desired, use ‘symbol.border.col=“transparent”’. |
plt.beyond.zlim |
IF TRUE, and if |
... |
Any other parameters the user adds will be passed to the
|
This function is a wrapper to the points.geodata
function in the geoR package.
A scatterplot with points at (x,y). These points
are colored according to the correspoinding value of z and
the colors specified in col. They are sized according to the
corresponding value of z and the minimum and maximum sizes
specified by cex.min and cex.max.
Jenise Swall
points.geodata, points
# Plot ozone at each location using colors from rainbow.colors
# and differently-sized points. Add a legend using function
# vertical.image.legend (included in this package).
data(ozone1)
col.rng <- rev(rainbow(n=10, start=0, end=4/6))
z.rng <- c(40, 90)
plot3d.points(x=ozone1$longitude, y=ozone1$latitude, z=ozone1$daily.max,
xlab="longitude", ylab="latitude", col=col.rng,
zlim=z.rng, cex.min=0.5, cex.max=1.5)
# To verify, label the points with their concentrations.
text(ozone1$longitude, ozone1$latitude+0.15, ozone1$daily.max, cex=0.7)
# If maps package is available, put on state lines.
if (require("maps")) map("state", add=TRUE, col="lightgray")
# Put on legend.
vertical.image.legend(col=col.rng, zlim=z.rng)
# Plot second day of ozone data. Note that day 2 experienced a smaller
# range of concentrations, so we plot day 2 on same scale as day 1.
data(ozone1)
data(ozone2)
z.rng <- c(40, 90)
col.rng <- rev(rainbow(n=10, start=0, end=4/6))
plot3d.points(x=ozone2$longitude, y=ozone2$latitude, z=ozone2$daily.max,
xlab="longitude", ylab="latitude", col=col.rng,
zlim=z.rng, cex.min=0.5, cex.max=1.5)
# To verify, label the points with their concentrations.
text(ozone2$longitude, ozone2$latitude+0.15, ozone2$daily.max, cex=0.7)
# If maps package is available, put on state lines.
if (require("maps")) map("state", add=TRUE, col="lightgray")
vertical.image.legend(col=col.rng, zlim=z.rng)
# When some z value(s) is/are much lower/higher than the others,
# the outlying value(s) may appear in color at the extent
# of the range, with the remainder of the data clustered in one (or
# just a few) color bin(s).
x <- 1:9
y <- 1:9
z <- c(0, 47:53, 100)
col.rng <- rev(rainbow(n=7, start=0, end=4/6))
plot3d.points(x, y, z, col=col.rng)
text(x, y+0.2, z, cex=0.8)
# In vain, you might try to "fix" this by setting zlim so that the
# color range reflects the main portion of the z values. You may
# assume that the outlying value(s) will show up in the extreme edges
# of the color range, but what will actually happen is that the
# outlying values won't be plotted.
plot3d.points(x, y, z, col=col.rng, zlim=c(47, 53))
text(x, y+0.2, z, cex=0.8)
# Instead, specify zlim to reflect the main porition of the z values,
# and set plt.beyond.zlim=TRUE. Now, z values below zlim[1] will be
# plotted in the same color as zlim[1]; those above zlim[2] will be
# plotted like z values of zlim[2]. But, remember, now there are
# outlying values whose maginitudes cannot be easily ascertained!
plot3d.points(x, y, z, zlim=c(47, 53), col=col.rng, plt.beyond.zlim=TRUE)
text(x, y+0.2, z, cex=0.8)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.