biplot | R Documentation |
pca
familybiplot methods for pca
family
## S3 method for class 'pca'
biplot(
x,
comp = c(1, 2),
block = NULL,
ind.names = TRUE,
group = NULL,
cutoff = 0,
col.per.group = NULL,
col = NULL,
ind.names.size = 3,
ind.names.col = color.mixo(4),
ind.names.repel = TRUE,
pch = 19,
pch.levels = NULL,
pch.size = 2,
var.names = TRUE,
var.names.col = "grey40",
var.names.size = 4,
var.names.angle = FALSE,
var.arrow.col = "grey40",
var.arrow.size = 0.5,
var.arrow.length = 0.2,
ind.legend.title = NULL,
vline = FALSE,
hline = FALSE,
legend = if (is.null(group)) FALSE else TRUE,
legend.title = NULL,
pch.legend.title = NULL,
cex = 1.05,
...
)
## S3 method for class 'mixo_pls'
biplot(
x,
comp = c(1, 2),
block = NULL,
ind.names = TRUE,
group = NULL,
cutoff = 0,
col.per.group = NULL,
col = NULL,
ind.names.size = 3,
ind.names.col = color.mixo(4),
ind.names.repel = TRUE,
pch = 19,
pch.levels = NULL,
pch.size = 2,
var.names = TRUE,
var.names.col = "grey40",
var.names.size = 4,
var.names.angle = FALSE,
var.arrow.col = "grey40",
var.arrow.size = 0.5,
var.arrow.length = 0.2,
ind.legend.title = NULL,
vline = FALSE,
hline = FALSE,
legend = if (is.null(group)) FALSE else TRUE,
legend.title = NULL,
pch.legend.title = NULL,
cex = 1.05,
...
)
x |
An object of class 'pca'or mixOmics '(s)pls'. |
comp |
integer vector of length two (or three to 3d). The components that will be used on the horizontal and the vertical axis respectively to project the individuals. |
block |
Character, name of the block to show for |
ind.names |
either a character vector of names for the individuals to
be plotted, or |
group |
Factor indicating the group membership for each sample. |
cutoff |
numeric between 0 and 1. Variables with correlations below this cutoff in absolute value are not plotted (see Details). |
col.per.group |
character (or symbol) color to be used when 'group' is defined. Vector of the same length as the number of groups. |
col |
character (or symbol) color to be used, possibly vector. |
ind.names.size |
Numeric, sample name size. |
ind.names.col |
Character, sample name colour. |
ind.names.repel |
Logical, whether to repel away label names. |
pch |
plot character. A character string or a vector of single
characters or integers. See |
pch.levels |
If |
pch.size |
Numeric, sample point character size. |
var.names |
Logical indicating whether to show variable names. Alternatively, a character. |
var.names.col |
Character, variable name colour. |
var.names.size |
Numeric, variable name size. |
var.names.angle |
Logical, whether to align variable names to arrow directions. |
var.arrow.col |
Character, variable arrow colour. If 'NULL', no arrows are shown. |
var.arrow.size |
Numeric, variable arrow head size. |
var.arrow.length |
Numeric, length of the arrow head in 'cm'. |
ind.legend.title |
Character, title of the legend. |
vline |
Logical, whether to draw the vertical neutral line. |
hline |
Logical, whether to draw the horizontal neutral line. |
legend |
Logical, whether to show the legend if |
legend.title |
Character, the legend title if |
pch.legend.title |
Character, the legend title if |
cex |
Numeric scalar indicating the desired magnification of plot texts.
|
... |
Not currently used. |
pch.legend |
Character, the legend title if |
biplot
unifies the reduced representation of both the
observations/samples and variables of a matrix of multivariate data on the
same plot. Essentially, in the reduced space the samples are shown as
points/names and the contributions of features to each dimension are shown as
directed arrows or vectors.
For pls
objects it is possible to use either 'X'
or 'Y'
latent space using block
argument.
A ggplot object.
Al J Abadi
data("nutrimouse")
## --------- pca ---------- ##
pca.lipid <- pca(nutrimouse$lipid, ncomp = 3, scale = TRUE)
# seed for reproducible geom_text_repel
set.seed(42)
biplot(pca.lipid)
## correlation cutoff to filter features
biplot(pca.lipid, cutoff = c(0.8))
## tailor threshold for each component
biplot(pca.lipid, cutoff = c(0.8, 0.7))
## customise components
biplot(pca.lipid, cutoff = c(0.8), comp = c(1,3))
## customise ggplot in an arbitrary way
biplot(pca.lipid) + theme_linedraw() +
# add vline
geom_vline(xintercept = 0, col = 'green') +
# add hline
geom_hline(yintercept = 0, col = 'green') +
# customise labs
labs(x = 'Principal Component 1', y = 'Principal Component 2')
## group samples
biplot(pca.lipid, group = nutrimouse$diet, legend.title = 'Diet')
## customise variable labels
biplot(pca.lipid,
var.names.col = color.mixo(2),
var.names.size = 4,
var.names.angle = TRUE
)
## no arrows
biplot(pca.lipid, group = nutrimouse$diet, legend.title = 'Diet',
var.arrow.col = NULL, var.names.col = 'black')
## add x=0 and y=0 lines in function
biplot(pca.lipid, group = nutrimouse$diet, legend.title = 'Diet',
var.arrow.col = NULL, var.names.col = 'black',
vline = TRUE, hline = TRUE)
## --------- spca
## example with spca
spca.lipid <- spca(nutrimouse$lipid, ncomp = 2, scale = TRUE, keepX = c(8, 6))
biplot(spca.lipid, var.names.col = 'black', group = nutrimouse$diet,
legend.title = 'Diet')
## --------- pls ---------- ##
data("nutrimouse")
pls.nutrimouse <- pls(X = nutrimouse$gene, Y = nutrimouse$lipid, ncomp = 2)
biplot(pls.nutrimouse, group = nutrimouse$genotype, block = 'X',
legend.title = 'Genotype', cutoff = 0.878)
biplot(pls.nutrimouse, group = nutrimouse$genotype, block = 'Y',
legend.title = 'Genotype', cutoff = 0.8)
## --------- plsda ---------- ##
data(breast.tumors)
X <- breast.tumors$gene.exp
colnames(X) <- paste0('GENE_', colnames(X))
rownames(X) <- paste0('SAMPLE_', rownames(X))
Y <- breast.tumors$sample$treatment
plsda.breast <- plsda(X, Y, ncomp = 2)
biplot(plsda.breast, cutoff = 0.72)
## remove arrows
biplot(plsda.breast, cutoff = 0.72, var.arrow.col = NULL, var.names.size = 4)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.