R: Plot Chord Diagram

chordDiagram {circlize} | R Documentation

## Plot Chord Diagram

### Description

Plot Chord Diagram

### Usage

    chordDiagram(x, grid.col = NULL, grid.border = NA, transparency = 0.5,
        col = NULL, row.col = NULL, column.col = NULL,
        order = NULL, directional = 0, xmax = NULL,
        symmetric = FALSE, keep.diagonal = FALSE,
        direction.type = "diffHeight", diffHeight = convert_height(2, "mm"),
        reduce = 1e-5, self.link = 2,
        preAllocateTracks = NULL,
        annotationTrack = c("name", "grid", "axis"),
        annotationTrackHeight = convert_height(c(3, 2), "mm"),
        link.border = NA, link.lwd = par("lwd"), link.lty = par("lty"),
        link.sort = FALSE, link.decreasing = TRUE,
        link.arr.length = ifelse(link.arr.type == "big.arrow", 0.02, 0.4),
        link.arr.width = link.arr.length/2,
        link.arr.type = "triangle", link.arr.lty = par("lty"),
        link.arr.lwd = par("lwd"), link.arr.col = par("col"),
        link.largest.ontop = FALSE, link.visible = TRUE,
        link.rank = NULL, scale = FALSE, big.gap = 10, small.gap = 1, ...)

### Arguments

`x` | a matrix or a data frame. The function will pass all argument to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame` depending on the type of `x`, also format of other arguments depends of the type of `x`. If it is in the form of a matrix, it should be an adjacency matrix. If it is in the form of a data frame, it should be an adjacency list.
`grid.col` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`grid.border` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`transparency` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`col` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`row.col` | pass to `chordDiagramFromMatrix`
`column.col` | pass to `chordDiagramFromMatrix`
`order` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`directional` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`xmax` | maximum value on x-axes, the value should be a named vector.
`symmetric` | pass to `chordDiagramFromMatrix`
`keep.diagonal` | pass to `chordDiagramFromMatrix`
`direction.type` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`diffHeight` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`reduce` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`self.link` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`preAllocateTracks` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`annotationTrack` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`annotationTrackHeight` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.border` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.lwd` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.lty` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.sort` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.decreasing` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.length` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.width` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.type` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.lty` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.lwd` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.arr.col` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.largest.ontop` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.visible` | pass to `chordDiagramFromMatrix` or `chordDiagramFromDataFrame`
`link.rank` | order to add links to the circle, a large value means to add it later.
`scale` | scale each sector to same width
`big.gap` | Gap between the two sets of sectors. If the input is a matrix, the two sets are row sectors and column sectors. If the input is a data frame, the two sets correspond to the first column and the second column. It only works when there is no intersection between the two sets.
`small.gap` | Small gap between sectors.
`...` | pass to `circos.link`.

### Details

Chord diagram is a way to visualize numeric tables ( http://circos.ca/intro/tabular_visualization/ ), especially useful when the table represents information of directional relations. This function visualize tables in a circular way.

This function is flexible and contains some settings that may be a little difficult to understand. Please refer to vignette for better explanation.

### Value

A data frame which contains positions of links, columns are:

`rn`

  sector name corresponding to rows in the adjacency matrix or the first column in the adjacency list

`cn`

  sector name corresponding to columns in the adjacency matrix or the second column in the adjacency list

`value`

  value for the interaction or relation

`o1`

  order of the link on the "from" sector

`o2`

  order of the link on the "to" sector

`x1`

  and position of the link on the "from" sector, the interval for the link on the "from" sector is `c(x1-abs(value), x1)`

`x2`

  and position of the link on the "to" sector, the interval for the link on the "from" sector is `c(x2-abs(value), x2)`

### References

Gu, Z. (2014) circlize implements and enhances circular visualization in R. Bioinformatics.

### See Also

http://jokergoo.github.io/circlize_book/book/the-chorddiagram-function.html

### Examples

    set.seed(999)
    mat = matrix(sample(18, 18), 3, 6)
    rownames(mat) = paste0("S", 1:3)
    colnames(mat) = paste0("E", 1:6)

    df = data.frame(from = rep(rownames(mat), times = ncol(mat)),
        to = rep(colnames(mat), each = nrow(mat)),
        value = as.vector(mat),
        stringsAsFactors = FALSE)

    chordDiagram(mat)
    chordDiagram(df)
    circos.clear()

[Package circlize version 0.4.5 Index]