plot.deldir {deldir} | R Documentation |
Plot objects produced by deldir
Description
This is a method for plot.
Usage
## S3 method for class 'deldir'
plot(x,add=FALSE,wlines=c("both","triang","tess"),
showpoints=TRUE,labelPts=FALSE,cex=1,lex=1,
cmpnt_col=NULL,cmpnt_lty=NULL,pch=1,xlim=NULL,
ylim=NULL,axes=FALSE,xlab=if(axes) "x" else "",
ylab=if(axes) "y" else"",showrect=FALSE,asp=1,...)
Arguments
x |
An object of class "deldir" as returned by the function deldir. |
add |
logical argument; should the plot be added to an existing plot? |
wlines |
"which lines?". I.e. should the Delaunay triangulation be plotted (wlines="triang"), should the Dirichlet tessellation be plotted (wlines="tess"), or should both be plotted (wlines="both", the default) ? |
showpoints |
Logical scalar; should the points being triangulated/tessellated be plotted? |
labelPts |
Logical argument, defaulting to |
cex |
The value of the character expansion argument cex to be used with the plotting symbols for plotting the points. |
lex |
The value of the character expansion argument cex to be used by the
text function when labelling the points with their identifiers. Used only
if |
cmpnt_col |
A vector or list specifying the colours to be used for plotting
the (up to five) different components of the graphic, explicitly the
triangulation, the tessellation, the data points,
the point labels and the enclosing rectangle ( Colours may be specified as positive integers, corresponding to
the entries of the current If fewer than five colours are given, the missing components are
filled in with |
cmpnt_lty |
A vector or list (of length two) of line types for plotting
the two components of the graphic that consist of lines,
i.e. the triangulation and the tessellation. The types may
consist of integers between 1 and 6, or of approriate text
strings ("solid", "dashed", "dotted", "dotdash", "longdash" or
"twodash"; see the discussion of |
pch |
The plotting symbol for plotting the points. May be either integer or character. |
xlim |
The limits on the x-axis. Defaults to |
ylim |
The limits on the y-axis. Defaults to |
axes |
Logical scalar. Should axes be drawn on the plot? |
xlab |
Label for the x-axis. Defaults to |
ylab |
Label for the y-axis. Defaults to |
showrect |
Logical scalar; show the enclosing rectangle |
asp |
The aspect ratio of the plot; integer scalar or |
... |
Further plotting parameters (e.g. |
Side Effects
A plot of the edges of the Delaunay triangles and/or of the Dirichlet tiles is produced or added to an existing plot. By default the triangles are plotted with solid lines (lty=1) and the tiles with dotted lines (lty=2). In addition the points being triangulated may be plotted.
Warnings
As of release 1.0-8 the argument
number
ofplot.deldir()
andplot.tile.list()
was changed tolabelPts
. As a consequence the argumentnex
of this function has had its name changed tolex
.In previous versions of the
deldir
package, the aspect ratio was not set. Instead, the shape of the plotting region was set to be square (pty="s"
). This practice was suboptimal. To reproduce previous behaviour setasp=NA
(and possiblypty="s"
) in the call toplot.deldir()
. Users, unless they really understand what they are doing and why they are doing it, are now strongly advised not to set the value ofasp
but rather to leaveasp
equal to its default value of1
. Any other value may distort the tessellation and destroy the perpendicular appearance of lines which are indeed perpendicular. (And conversely may cause lines which are not perpendicular to appear as if they are.)
Author(s)
Rolf Turner rolfurner@posteo.net
See Also
deldir()
Examples
x <- c(2.3,3.0,7.0,1.0,3.0,8.0) + 0.5
y <- c(2.3,3.0,2.0,5.0,8.0,9.0) + 0.5
x <- c(x,1,10,10,1)
y <- c(y,1,1,10,10)
dxy <- deldir(x,y,rw=c(0,11,0,11))
plot(dxy)
# Plots the tessellation, but does not save the results:
deldir(x,y,rw=c(0,11,0,11),plot=TRUE,
wl="tess",cmpnt_col=c(1,1,2,3,4),labelPts=TRUE)
# Plots the triangulation, but not the tessellation or the points,
# and saves the returned structure:
dxy <- deldir(x,y,rw=c(0,11,0,11),plot=TRUE,wl="triang",wp="none")
# Plot everything:
plot(dxy,cmpnt_col=c("orange","green","red","blue","black"),cmpnt_lty=1,
labelPts=TRUE,lex=1.5,pch=c(19,9),showrect=TRUE,axes=TRUE)
# Complicated example from He Huang:
# "Linguistic distances".
vldm <- c(308.298557,592.555483,284.256926,141.421356,449.719913,
733.976839,591.141269,282.842712,1.414214,732.562625)
ldm <- matrix(nrow=5,ncol=5)
ldm[row(ldm) > col(ldm)] <- vldm
ldm[row(ldm) <= col(ldm)] <- 0
ldm <- (ldm + t(ldm))/2
rownames(ldm) <- LETTERS[1:5]
colnames(ldm) <- LETTERS[1:5]
# Data to be triangulated.
id <- c("A","B","C","D","E")
x <- c(0.5,1,1,1.5,2)
y <- c(5.5,3,7,6.5,5)
dat_Huang <- data.frame(id = id, x = x, y = y)
# Form the triangulation/tessellation.
dH <- deldir(dat_Huang)
# Plot the triangulation with line widths proportional
# to "linguistic distances".
all_col <- rainbow(100)
i <- pmax(1,round(100*vldm/max(vldm)))
use_col <- all_col[i]
ind <- as.matrix(dH$delsgs[,c("ind1","ind2")])
lwv <- ldm[ind]
lwv <- 10*lwv/max(lwv)
plot(dH,wlines="triang",col=use_col,showpoints=FALSE,
lw=lwv,asp=NA)
with(dH,text(x,y,id,cex=1.5))