plotVar {mixOmics} | R Documentation

## Plot of Variables

### Description

This function provides variables representation for (regularized) CCA, (sparse) PLS regression, PCA and (sparse) Regularized generalised CCA.

### Usage

    plotVar(
      object,
      comp = NULL,
      comp.select = comp,
      plot = TRUE,
      var.names = NULL,
      blocks = NULL,
      X.label = NULL,
      Y.label = NULL,
      Z.label = NULL,
      abline = TRUE,
      col,
      cex,
      pch,
      font,
      cutoff = 0,
      rad.in = 0.5,
      title = "Correlation Circle Plot",
      legend = FALSE,
      legend.title = "Block",
      style = "ggplot2",
      overlap = TRUE,
      axes.box = "all",
      label.axes.box = "both"
    )

### Arguments

`object` | object of class inheriting from `"rcc"`, `"pls"`, `"plsda"`, `"spls"`, `"splsda"`, `"pca"` or `"spca"`.
`comp` | integer vector of length two. The components that will be used on the horizontal and the vertical axis respectively to project the variables. By default, comp=c(1,2) except when style='3d', comp=c(1:3)
`comp.select` | for the sparse versions, an input vector indicating the components on which the variables were selected. Only those selected variables are displayed. By default, comp.select=comp
`plot` | if TRUE (the default) then a plot is produced. If not, the summaries which the plots are based on are returned.
`var.names` | either a character vector of names for the variables to be plotted, or `FALSE` for no names. If `TRUE`, the col names of the first (or second) data matrix is used as names.
`blocks` | for an object of class `"rgcca"` or `"sgcca"`, a numerical vector indicating the block variables to display.
`X.label` | x axis titles.
`Y.label` | y axis titles.
`Z.label` | z axis titles (when style = '3d').
`abline` | should the vertical and horizontal line through the center be plotted? Default set to `FALSE`
`col` | character or integer vector of colors for plotted character and symbols, can be of length 2 (one for each data set) or of length (p+q) (i.e. the total number of variables). See Details.
`cex` | numeric vector of character expansion sizes for the plotted character and symbols, can be of length 2 (one for each data set) or of length (p+q) (i.e. the total number of variables).
`pch` | plot character. A vector of single characters or integers, can be of length 2 (one for each data set) or of length (p+q) (i.e. the total number of variables). See `points` for all alternatives.
`font` | numeric vector of font to be used, can be of length 2 (one for each data set) or of length (p+q) (i.e. the total number of variables). See `par` for details.
`cutoff` | numeric between 0 and 1. Variables with correlations below this cutoff in absolute value are not plotted (see Details).
`rad.in` | numeric between 0 and 1, the radius of the inner circle. Defaults to `0.5`.
`title` | character indicating the title plot.
`legend` | Logical when more than 3 blocks. Can be a character vector when one or 2 blocks to customize the legend. See examples. Default is FALSE.
`legend.title` | title of the legend
`style` | argument to be set to either `'graphics'`, `'lattice'`, `'ggplot2'` or `'3d'` for a style of plotting.
`overlap` | Logical. Whether the variables should be plotted in one single figure. Default is TRUE.
`axes.box` | for style '3d', argument to be set to either `'axes'`, `'box'`, `'bbox'` or `'all'`, defining the shape of the box.
`label.axes.box` | for style '3d', argument to be set to either `'axes'`, `'box'`, `'both'`, indicating which labels to print.

### Details

`plotVar` produce a "correlation circle", i.e. the correlations between each variable and the selected components are plotted as scatter plot, with concentric circles of radius one et radius given by `rad.in`. Each point corresponds to a variable. For (regularized) CCA the components correspond to the equiangular vector between X- and Y-variates. For (sparse) PLS regression mode the components correspond to the X-variates. If mode is canonical, the components for X and Y variables correspond to the X- and Y-variates respectively.

For `plsda` and `splsda` objects, only the X variables are represented.

For `spls` and `splsda` objects, only the X and Y variables selected on dimensions `comp` are represented.

The arguments `col`, `pch`, `cex` and `font` can be either vectors of length two or a list with two vector components of length p and q respectively, where p is the number of X-variables and q is the number of Y-variables. In the first case, the first and second component of the vector determine the graphics attributes for the X- and Y-variables respectively. Otherwise, multiple arguments values can be specified so that each point (variable) can be given its own graphic attributes. In this case, the first component of the list correspond to the X attributs and the second component correspond to the Y attributs. Default values exist for this arguments.

### Value

A list containing the following components:

`x` | a vector of coordinates of the variables on the x-axis.
`y` | a vector of coordinates of the variables on the y-axis.
`Block` | the data block name each variable belongs to.
`names` | the name of each variable, matching their coordinates values.

### Author(s)

Ignacio González, Benoit Gautier, Francois Bartolo, Florian Rohart, Kim-Anh Lê Cao, Al J Abadi

### References

González I., Lê Cao K-A., Davis, M.J. and Déjean, S. (2012). Visualising associations between paired 'omics data sets. J. Data Mining 5:19. http://www.biodatamining.org/content/5/1/19/abstract

### See Also

`cim`, `network`, `par` and http://www.mixOmics.org for more details.

### Examples

    ## variable representation for objects of class 'rcc'
    # ----------------------------------------------------
    data(nutrimouse)
    X <- nutrimouse$lipid
    Y <- nutrimouse$gene
    nutri.res <- rcc(X, Y, ncomp = 3, lambda1 = 0.064, lambda2 = 0.008)

    plotVar(nutri.res) #(default)

    plotVar(nutri.res, comp = c(1,3), cutoff = 0.5)

    ## Not run:
    ## variable representation for objects of class 'pls' or 'spls'
    # ----------------------------------------------------
    data(liver.toxicity)
    X <- liver.toxicity$gene
    Y <- liver.toxicity$clinic
    toxicity.spls <- spls(X, Y, ncomp = 3, keepX = c(50, 50, 50),
    keepY = c(10, 10, 10))

    plotVar(toxicity.spls, cex = c(1,0.8))

    # with a customized legend
    plotVar(toxicity.spls, legend = c("block 1", "my block 2"),
    legend.title="my legend")

    ## variable representation for objects of class 'splsda'
    # ----------------------------------------------------

    data(liver.toxicity)
    X <- liver.toxicity$gene
    Y <- as.factor(liver.toxicity$treatment[, 4])

    ncomp <- 2
    keepX <- rep(20, ncomp)

    splsda.liver <- splsda(X, Y, ncomp = ncomp, keepX = keepX)
    plotVar(splsda.liver)

    ## variable representation for objects of class 'sgcca' (or 'rgcca')
    # ----------------------------------------------------
    ## see example in ??wrapper.sgcca
    data(nutrimouse)
    # need to unmap the Y factor diet
    Y = unmap(nutrimouse$diet)
    # set up the data as list
    data = list(gene = nutrimouse$gene, lipid = nutrimouse$lipid, Y = Y)

    # set up the design matrix:
    # with this design, gene expression and lipids are connected to the diet factor
    # design = matrix(c(0,0,1,
    #                   0,0,1,
    #                   1,1,0), ncol = 3, nrow = 3, byrow = TRUE)

    # with this design, gene expression and lipids are connected to the diet factor
    # and gene expression and lipids are also connected
    design = matrix(c(0,1,1,
    1,0,1,
    1,1,0), ncol = 3, nrow = 3, byrow = TRUE)

    #note: the penalty parameters will need to be tuned
    wrap.result.sgcca = wrapper.sgcca(X = data, design = design, penalty = c(.3,.3, 1),
    ncomp = 2,
    scheme = "centroid")
    wrap.result.sgcca

    #variables selected on component 1 for each block
    selectVar(wrap.result.sgcca, comp = 1, block = c(1,2))$'gene'$name
    selectVar(wrap.result.sgcca, comp = 1, block = c(1,2))$'lipid'$name

    #variables selected on component 2 for each block
    selectVar(wrap.result.sgcca, comp = 2, block = c(1,2))$'gene'$name
    selectVar(wrap.result.sgcca, comp = 2, block = c(1,2))$'lipid'$name

    plotVar(wrap.result.sgcca, comp = c(1,2), block = c(1,2), comp.select = c(1,1),
    title = c('Variables selected on component 1 only'))

    plotVar(wrap.result.sgcca, comp = c(1,2), block = c(1,2), comp.select = c(2,2),
    title = c('Variables selected on component 2 only'))

    # -> this one shows the variables selected on both components
    plotVar(wrap.result.sgcca, comp = c(1,2), block = c(1,2),
    title = c('Variables selected on components 1 and 2'))

    ## variable representation for objects of class 'rgcca'
    # ----------------------------------------------------

    data(nutrimouse)
    # need to unmap Y for an unsupervised analysis, where Y is included as a data block in data
    Y = unmap(nutrimouse$diet)

    data = list(gene = nutrimouse$gene, lipid = nutrimouse$lipid, Y = Y)
    # with this design, all blocks are connected
    design = matrix(c(0,1,1,1,0,1,1,1,0), ncol = 3, nrow = 3,
    byrow = TRUE, dimnames = list(names(data), names(data)))

    nutrimouse.rgcca <- wrapper.rgcca(X = data,
    design = design,
    tau = "optimal",
    ncomp = 2,
    scheme = "centroid")

    plotVar(nutrimouse.rgcca, comp = c(1,2), block = c(1,2), cex = c(1.5, 1.5))

    plotVar(nutrimouse.rgcca, comp = c(1,2), block = c(1,2))

    # set up the data as list
    data = list(gene = nutrimouse$gene, lipid = nutrimouse$lipid, Y =Y)
    # with this design, gene expression and lipids are connected to the diet factor
    # design = matrix(c(0,0,1,
    #                   0,0,1,
    #                   1,1,0), ncol = 3, nrow = 3, byrow = TRUE)

    # with this design, gene expression and lipids are connected to the diet factor
    # and gene expression and lipids are also connected
    design = matrix(c(0,1,1,
    1,0,1,
    1,1,0), ncol = 3, nrow = 3, byrow = TRUE)
    #note: the tau parameter is the regularization parameter
    wrap.result.rgcca = wrapper.rgcca(X = data, design = design, tau = c(1, 1, 0),
    ncomp = 2,
    scheme = "centroid")
    #wrap.result.rgcca
    plotVar(wrap.result.rgcca, comp = c(1,2), block = c(1,2))

    ## End(Not run)

[Package mixOmics version 6.14.1 Index]