Plot Chord Diagram from an adjacency matrix

chordDiagramFromMatrix(
    mat,
    grid.col = NULL,
    grid.border = NA,
    transparency = 0.5,
    col = NULL,
    row.col = NULL,
    column.col = NULL,
    order = NULL,
    directional = 0,
    direction.type = "diffHeight",
    diffHeight = mm_h(2),
    link.target.prop = TRUE,
    target.prop.height = mm_h(1),
    reduce = 1e-5,
    xmax = NULL,
    self.link = 2,
    symmetric = FALSE,
    keep.diagonal = FALSE,
    preAllocateTracks = NULL,
    annotationTrack = c("name", "grid", "axis"),
    annotationTrackHeight = mm_h(c(3, 2)),
    link.border = NA,
    link.lwd = par("lwd"),
    link.lty = par("lty"),
    link.auto = TRUE,
    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,
    link.zindex = NULL,
    link.overlap = FALSE,
    scale = FALSE,
    group = NULL,
    big.gap = 10,
    small.gap = 1,
    ...)

Arguments

mat

A table which represents as a numeric matrix.

grid.col

Grid colors which correspond to matrix rows/columns (or sectors). The length of the vector should be either 1 or length(union(rownames(mat), colnames(mat))). It's preferred that grid.col is a named vector of which names correspond to sectors. If it is not a named vector, the order of grid.col corresponds to order of sectors.

grid.border

border for grids. If it is NULL, the border color is same as grid color

transparency

Transparency of link colors, 0 means no transparency and 1 means full transparency. If transparency is already set in col or row.col or column.col, this argument will be ignored. NAalso ignores this argument.

col

Colors for links. It can be a matrix which corresponds to mat, or a function which generate colors according to values in mat, or a single value which means colors for all links are the same, or a three-column data frame in which the first two columns correspond to row names and columns and the third column is colors. You may use colorRamp2 to generate a function which maps values to colors.

row.col

Colors for links. Links from the same row in mat will have the same color. Length should be same as number of rows in mat. This argument only works when col is set to NULL.

column.col

Colors for links. Links from the same column in mat will have the same color. Length should be same as number of columns in mat. This argument only works when col and row.col is set to NULL.

order

Order of sectors. Default order is union(df[[1]], df[[2]]).

directional

Whether links have directions. 1 means the direction is from the first column in df to the second column, -1 is the reverse, 0 is no direction, and 2 for two directional. Same setting as link.border.

xmax

maximum value on x-axes, the value should be a named vector.

direction.type

type for representing directions. Can be one or two values in "diffHeight" and "arrows". If the value contains "diffHeight", different heights of the links are used to represent the directions for which starting root has long height to give people feeling that something is comming out. If the value contains "arrows", users can customize arrows with following arguments. Same setting as link.border. Note if you want to set both diffHeight and arrows for certain links, you need to embed these two options into one string such as "diffHeight+arrows".

diffHeight

The difference of height between two 'roots' if directional is set to TRUE. If the value is set to a positive value, start root is shorter than end root and if it is set to a negative value, start root is longer than the end root.

link.target.prop

If the Chord diagram is directional, for each source sector, whether to draw bars that shows the proportion of target sectors.

target.prop.height

The height of the bars when link.target.prop is turned on.

reduce

if the ratio of the width of certain grid compared to the whole circle is less than this value, the grid is removed on the plot. Set it to value less than zero if you want to keep all tiny grid.

self.link

if there is a self link in one sector, 1 means the link will be degenerated as a 'mountain' and the width corresponds to the value for this connection. 2 means the width of the starting root and the ending root all have the width that corresponds to the value for the connection.

symmetric

Whether the matrix is symmetric. If the value is set to TRUE, only lower triangular matrix without the diagonal will be used.

keep.diagonal

If the matrix is specified as symmetric, whether keep diagonal for visualization.

preAllocateTracks

Pre-allocate empty tracks before drawing Chord diagram. It can be a single number indicating how many empty tracks needed to be created or a list containing settings for empty tracks. Please refer to vignette for details.

annotationTrack

Which annotation track should be plotted? By default, a track containing sector names and a track containing grid will be created.

annotationTrackHeight

Track height corresponding to values in annotationTrack.

link.border

border for links, single scalar or a matrix with names or a data frame with three columns

link.lwd

width for link borders, single scalar or a matrix with names or a data frame with three columns

link.lty

style for link borders, single scalar or a matrix with names or a data frame with three columns

link.auto

Ignored.

link.sort

whether sort links on every sector based on the width of the links on it. If it is set to "overall", all links are sorted regardless whether they are from rows or columns.

link.decreasing

for link.sort

link.arr.length

pass to circos.link. The format of this argument is same as link.lwd.

link.arr.width

pass to Arrowhead. The format of this argument is same as link.lwd.

link.arr.type

pass to circos.link, same format as link.lwd. Default value is triangle.

link.arr.col

color or the single line link which is put in the center of the belt. The format of this argument is same as link.lwd.

link.arr.lwd

line width ofthe single line link which is put in the center of the belt. The format of this argument is same as link.lwd.

link.arr.lty

line type of the single line link which is put in the center of the belt. The format of this argument is same as link.lwd.

link.largest.ontop

controls the order of adding links, whether based on the absolute value?

link.visible

whether plot the link. The value is logical, if it is set to FALSE, the corresponding link will not plotted, but the space is still ocuppied. The format of this argument is same as link.lwd

link.rank

This is argument is removed.

link.zindex

order to add links to the circle, a large value means to add it later.

link.overlap

if it is a directional Chord Diagram, whether the links that come or end in a same sector overlap?

scale

scale each sector to same width

group

It contains the group labels and the sector names are used as the names in the vector.

big.gap

Gap between row sectors and column sectors.

small.gap

Small gap between sectors.

...

pass to circos.link

Details

Internally, the matrix is transformed to a data frame and sent to chordDiagramFromDataFrame.

Value

A data frame which contains positions of links, see explanation in chordDiagram.

See also

Examples

# There is no example NULL
#> NULL