The biplot is the central way to create a joint plot of elements and constructs. Depending on the parameters chosen it contains information on the distances between elements and constructs. Also the relative values the elements have on a construct can be read off by projection the element onto the construct vector. A lot of parameters can be changed rendering different types of biplots (ESA, Slater's) and different looks (colors, text size). See the example section below to get started.
Usage
biplot2d(
x,
dim = c(1, 2),
map.dim = 3,
center = 1,
normalize = 0,
g = 0,
h = 1 - g,
col.active = NA,
col.passive = NA,
e.point.col = "black",
e.point.cex = 0.9,
e.label.col = "black",
e.label.cex = 0.7,
e.color.map = c(0.4, 1),
c.point.col = "black",
c.point.cex = 0,
c.label.col = "black",
c.label.cex = 0.7,
c.color.map = c(0.4, 1),
c.points.devangle = 91,
c.labels.devangle = 91,
c.points.show = TRUE,
c.labels.show = TRUE,
e.points.show = TRUE,
e.labels.show = TRUE,
inner.positioning = TRUE,
outer.positioning = TRUE,
c.labels.inside = FALSE,
c.lines = TRUE,
col.c.lines = grey(0.9),
flipaxes = c(FALSE, FALSE),
strokes.x = 0.1,
strokes.y = 0.1,
offsetting = TRUE,
offset.labels = 0,
offset.e = 1,
axis.ext = 0.1,
mai = c(0.2, 1.5, 0.2, 1.5),
rect.margins = c(0.01, 0.01),
srt = 45,
cex.pos = 0.7,
xpd = TRUE,
unity = FALSE,
unity3d = FALSE,
scale.e = 0.9,
zoom = 1,
var.show = TRUE,
var.cex = 0.7,
var.col = grey(0.1),
...
)
Arguments
- x
repgrid
object.- dim
Dimensions (i.e. principal components) to be used for biplot (default is
c(1,2)
).- map.dim
Third dimension (depth) used to map aesthetic attributes to (default is
3
).- center
Numeric. The type of centering to be performed. 0= no centering, 1= row mean centering (construct), 2= column mean centering (elements), 3= double-centering (construct and element means), 4= midpoint centering of rows (constructs). The default is
1
(row centering).- normalize
A numeric value indicating along what direction (rows, columns) to normalize by standard deviations.
0 = none, 1= rows, 2 = columns
(default is0
).- g
Power of the singular value matrix assigned to the left singular vectors, i.e. the constructs.
- h
Power of the singular value matrix assigned to the right singular vectors, i.e. the elements.
- col.active
Columns (elements) that are no supplementary points, i.e. they are used in the SVD to find principal components. default is to use all elements.
- col.passive
Columns (elements) that are supplementary points, i.e. they are NOT used in the SVD but projected into the component space afterwards. They do not determine the solution. Default is
NA
, i.e. no elements are set supplementary.- e.point.col
Color of the element symbols. The default is
"black"
. Two values can be entered that will create a color ramp. The values ofmap.dim
are mapped onto the ramp. If only one color color value is supplied (e.g."black"
) no mapping occurs and all elements will have the same color irrespective of their value on themap.dim
dimension.- e.point.cex
Size of the element symbols. The default is
.9
. Two values can be entered that will create a size ramp. The values ofmap.dim
are mapped onto the ramp. If only one color size value is supplied (e.g..8
) no mapping occurs and all elements will have the same size irrespective of their value on themap.dim
dimension.- e.label.col
Color of the element label. The default is
"black"
. Two values can be entered that will create a color ramp. The values ofmap.dim
are mapped onto the ramp. If only one color color value is supplied (e.g."black"
) no mapping occurs and all labels will have the same color irrespective of their value on themap.dim
dimension.- e.label.cex
Size of the element labels. The default is
.7
. Two values can be entered that will create a size ramp. The values ofmap.dim
are mapped onto the ramp. If only one color size value is supplied (e.g..7
) no mapping occurs and all labels will have the same size irrespective of their value on themap.dim
dimension.- e.color.map
Value range to determine what range of the color ramp defined in
e.color
will be used for mapping the colors. Default isc(.4, ,1)
. Usually not important for the user.- c.point.col
Color of the construct symbols. The default is
"black"
. Two values can be entered that will create a color ramp. The values ofmap.dim
are mapped onto the ramp. If only one color color value is supplied (e.g."black"
) no mapping occurs and all construct will have the same color irrespective of their value on themap.dim
dimension.- c.point.cex
Size of the construct symbols. The default is
.8
. Two values can be entered that will create a size ramp. The values ofmap.dim
are mapped onto the ramp. If only one color size value is supplied (e.g..8
) no mapping occurs and all construct will have the same size irrespective of their value on themap.dim
dimension.- c.label.col
Color of the construct label. The default is
"black"
. Two values can be entered that will create a color ramp. The values ofmap.dim
are mapped onto the ramp. If only one color color value is supplied (e.g."black"
) no mapping occurs and all labels will have the same color irrespective of their value on themap.dim
dimension.- c.label.cex
Size of the construct labels. The default is
.7
. Two values can be entered that will create a size ramp. The values ofmap.dim
are mapped onto the ramp. If only one color size value is supplied (e.g..7
) no mapping occurs and all labels will have the same size irrespective of their value on themap.dim
dimension.- c.color.map
Value range to determine what range of the color ramp defined in
c.color
will be used for mapping. Default isc(.4, ,1)
. Usually not important for the user.- c.points.devangle
The deviation angle from the x-y plane in degrees. These can only be calculated if a third dimension
map.dim
is specified. Only the constructs that do not depart more than the specified degrees from the x-y plane will be printed. This facilitates the visual interpretation, as only vectors represented near the current plane are shown. Set the value to91
(default) to show all vectors.- c.labels.devangle
The deviation angle from the x-y plane in degrees. These can only be calculated if a third dimension
map.dim
is specified. Only the labels of constructs that do not depart more than the specified degrees from the x-y plane will be printed. Set the value to91
(default) to show all construct labels.- c.points.show
Whether the constructs are printed (default is
TRUE
).FALSE
will suppress the printing of the constructs. To only print certain constructs a numeric vector can be provided (e.g.c(1:10)
).- c.labels.show
Whether the construct labels are printed (default is
TRUE
).FALSE
will suppress the printing of the labels. To only print certain construct labels a numeric vector can be provided (e.g.c(1:10)
).- e.points.show
Whether the elements are printed (default is
TRUE
).FALSE
will suppress the printing of the elements. To only print certain elements a numeric vector can be provided (e.g.c(1:10)
).- e.labels.show
Whether the element labels are printed (default is
TRUE
).FALSE
will suppress the printing of the labels. To only print certain element labels a numeric vector can be provided (e.g.c(1:10)
).- inner.positioning
Logical. Whether to calculate positions to minimize overplotting of elements and construct labels (default is
TRUE
). Note that the positioning may slow down the plotting.- outer.positioning
Logical. Whether to calculate positions to minimize overplotting of of construct labels on the outer borders (default is
TRUE
). Note that the positioning may slow down the plotting.- c.labels.inside
Logical. Whether to print construct labels next to the points. Can be useful during inspection of the plot (default
FALSE
).- c.lines
Logical. Whether construct lines from the center of the biplot to the surrounding box are drawn (default is
FALSE
).- col.c.lines
The color of the construct lines from the center to the borders of the plot (default is
gray(.9)
).- flipaxes
Logical vector of length two. Whether x and y axes are reversed (default is
c(F,F)
).- strokes.x
Length of outer strokes in x direction in NDC.
- strokes.y
Length of outer strokes in y direction in NDC.
- offsetting
Do offsetting? (TODO)
- offset.labels
Offsetting parameter for labels (TODO).
- offset.e
offsetting parameter for elements (TODO).
- axis.ext
Axis extension factor (default is
.1
). A bigger value will zoom out the plot.- mai
Margins available for plotting the labels in inch (default is
c(.2, 1.5, .2, 1.5)
).- rect.margins
Vector of length two (default is
c(.07, .07)
). Two values specifying the additional horizontal and vertical margin around each label.- srt
Angle to rotate construct label text. Only used in case
offsetting=FALSE
.- cex.pos
Cex parameter used during positioning of labels if prompted. Does usually not have to be changed by user.
- xpd
Logical (default is
TRUE
). Whether to extend text labels over figure region. Usually not needed by the user.- unity
Scale elements and constructs coordinates to unit scale in 2D (maximum of 1) so they are printed more neatly (default
TRUE
).- unity3d
Scale elements and constructs coordinates to unit scale in 3D (maximum of 1) so they are printed more neatly (default
TRUE
).- scale.e
Scaling factor for element vectors. Will cause element points to move a bit more to the center. (but only if
unity
orunity3d
isTRUE
). This argument is for visual appeal only.- zoom
Scaling factor for all vectors. Can be used to zoom the plot in and out (default
1
).- var.show
Show explained sum-of-squares in biplot? (default
TRUE
).- var.cex
The cex value for the percentages shown in the plot.
- var.col
The color value of the percentages shown in the plot.
- ...
parameters passed on to come.
Details
For the construction of a biplot the grid matrix is first centered and normalized according to the prompted options.
Next, the matrix is decomposed by singular value decomposition (SVD) into $$X = UDV^T$$ The biplot is made up of two matrices $$X = GH^T$$ These matrices are construed on the basis of the SVD results. $$\hat{X} = UD^gD^hV^T$$ Note that the grid matrix values are only recovered and the projection property is only given if \(g + h = 1\)
See also
Unsophisticated biplot:
biplotSimple()
;2D biplots:
biplot2d()
,biplotEsa2d()
,biplotSlater2d()
;Pseudo 3D biplots:
biplotPseudo3d()
,biplotEsaPseudo3d()
,biplotSlaterPseudo3d()
;Interactive 3D biplots:
biplot3d()
,biplotEsa3d()
,biplotSlater3d()
;Function to set view in 3D:
home()
Examples
if (FALSE) { # \dontrun{
biplot2d(boeker) # biplot of boeker data
biplot2d(boeker, c.lines = T) # add construct lines
biplot2d(boeker, center = 2) # with column centering
biplot2d(boeker, center = 4) # midpoint centering
biplot2d(boeker, normalize = 1) # normalization of constructs
biplot2d(boeker, dim = 2:3) # plot 2nd and 3rd dimension
biplot2d(boeker, dim = c(1, 4)) # plot 1st and 4th dimension
biplot2d(boeker, g = 1, h = 1) # assign singular values to con. & elem.
biplot2d(boeker, g = 1, h = 1, center = 1) # row centering (Slater)
biplot2d(boeker, g = 1, h = 1, center = 4) # midpoint centering (ESA)
biplot2d(boeker, e.color = "red", c.color = "blue") # change colors
biplot2d(boeker, c.color = c("white", "darkred")) # mapped onto color range
biplot2d(boeker, unity = T) # scale con. & elem. to equal length
biplot2d(boeker, unity = T, scale.e = .5) # scaling factor for element vectors
biplot2d(boeker, e.labels.show = F) # do not show element labels
biplot2d(boeker, e.labels.show = c(1, 2, 4)) # show labels for elements 1, 2 and 4
biplot2d(boeker, e.points.show = c(1, 2, 4)) # only show elements 1, 2 and 4
biplot2d(boeker, c.labels.show = c(1:4)) # show constructs labels 1 to 4
biplot2d(boeker, c.labels.show = c(1:4)) # show constructs labels except 1 to 4
biplot2d(boeker, e.cex.map = 1) # change size of texts for elements
biplot2d(boeker, c.cex.map = 1) # change size of texts for constructs
biplot2d(boeker, g = 1, h = 1, c.labels.inside = T) # constructs inside the plot
biplot2d(boeker,
g = 1, h = 1, c.labels.inside = T, # different margins and elem. color
mai = c(0, 0, 0, 0), e.color = "red"
)
biplot2d(boeker, strokes.x = .3, strokes.y = .05) # change length of strokes
biplot2d(boeker, flipaxes = c(T, F)) # flip x axis
biplot2d(boeker, flipaxes = c(T, T)) # flip x and y axis
biplot2d(boeker, outer.positioning = F) # no positioning of con.-labels
biplot2d(boeker, c.labels.devangle = 20) # only con. within 20 degree angle
} # }