levelplot functions for hyperSpec objects. An image or map of a summary
value of each spectrum is plotted. Spectra may be identified by mouse click.The model can contain the special column name .wavelength to specify the wavelength
axis.
plotmap(object, model = spc ~ x * y, func = mean, func.args = list(), ...)# S4 method for hyperSpec,missing
levelplot(x, data, ...)
# S4 method for formula,hyperSpec
levelplot(
x,
data,
transform.factor = TRUE,
...,
contour = FALSE,
useRaster = !contour
)
map.identify(
object,
model = spc ~ x * y,
voronoi = FALSE,
...,
tol = 0.02,
warn = TRUE
)
plotvoronoi(object, model = spc ~ x * y, use.tripack = FALSE, mix = FALSE, ...)
map.identify returns a vector of row indices into
object of the clicked points.
The other functions return a lattice object.
the hyperSpec object
formula specifying the columns of object that are to be
displayed by levelplot
Before plotting, plotmap applies function
func with the arguments given in the list func.args to each
of the spectra. Thus a single summary value is displayed for each of the
spectra.
This can be suppressed manually by setting func to NULL. It is automatically suppressed if
.wavelength appears in the formula.
further arguments are passed down the call chain, and finally
to levelplot
If the color-coded variable is a factor, should
trellis.factor.key be used to compute the color coding and
legend?
see levelplot
Should the plot for identifying spectra by mouse click be
produced by plotmap (default) or plotvoronoi?
tolerance for map.identify as fraction of the viewport
(i.e. in "npc" units)
should a warning be issued if no point is within the specified tolerance? See also details.
Whether package tripack should be used for calculating
the voronoi polygons. If FALSE, package deldir is used instead.
See details.
For Voronoi plots using package tripack, I experienced errors if the data was spatially ordered. Randomly rearrangig the rows of the hyperSpec object circumvents this problem.
C. Beleites
plotmap, map.identify, and the levelplot methods internally use the same
gateway function to levelplot. Thus transform.factor can be used
with all of them and the panel function defaults to panel.levelplot.raster
for all three. Two special column names, .rownames and .wavelength may be used.
levelplot plots the spectra matrix.
plotvoronoi calls plotmap with different default settings, namely the panel
function defaults to panel.voronoi.
panel.voronoi depends on either of the packages 'tripack' or 'deldir'
being installed. For further information, please consult the help page of
panel.voronoi. On the chondro data set, plotmap
is roughly 5 times faster than plotvoronoi using tripack, and ca. 15 times faster than
plotvoronoi using deldir. Package tripack, however, is free only for non-commercial
use. Also, it seems that tripack version hang (R running at full CPU power, but not responding
nor finishing the calculation) for certain data sets. In this case, mix = TRUE may help.
map.identify calls plotmap and plotvoronoi, respectively and waits for
(left) mouse clicks on points. Other mouse clicks end the input.
Unlike panel.identify, the indices returned by map.identify are in
the same order as the points were clicked. Also, multiple clicks on the same point are returned
as multiple entries with the same index.
map.identify uses option debuglevel similar to spc.identify:
debuglevel == 1 will plot the tolerance window if no data point was inside (and
additionally labels the point) while debuglevel == 2 will always plot the tolerance
window.
The map.sel.* functions offer further interactive selection, see
map.sel.poly.
vignette (plotting), vignette (hyperspec)
trellis.factor.key for improved color coding of factors
hyperSpec options spc.identify
map.sel.poly
if (FALSE) {
vignette (plotting)
vignette (hyperspec)
}
levelplot (spc ~ y * x, chondro [,,1003]) # properly rotated
plotmap (chondro [,,1003])
# plot spectra matrix
levelplot (spc ~ .wavelength * t, laser, contour = TRUE, col = "#00000080")
# see also plotmat
plotmap (chondro, clusters ~ x * y)
# Voronoi plots
smpl <- sample (chondro, 300)
plotmap (smpl, clusters ~ x * y)
if (require (deldir))
plotvoronoi (smpl, clusters ~ x * y,
use.tripack = FALSE)
Run the code above in your browser using DataLab