chorddiag: Create a D3 Chord Diagram

Description Usage Arguments Source Examples

View source: R/chorddiag.R

Description

Create an interactive chord diagram using the JavaScript visualization library D3 (http://d3js.org). More specifically, the chord diagram layout is based on http://bl.ocks.org/mbostock/4062006. Chord diagrams show directed relationships among a group of entities.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
chorddiag(
  data,
  type = "directional",
  width = NULL,
  height = NULL,
  margin = 100,
  palette = "Dark2",
  palette2 = "Greys",
  showGroupnames = TRUE,
  groupNames = NULL,
  groupColors = NULL,
  groupThickness = 0.1,
  groupPadding = 2,
  groupnamePadding = 30,
  groupnameFontsize = 18,
  groupedgeColor = NULL,
  chordedgeColor = "#808080",
  categoryNames = NULL,
  categorynamePadding = 100,
  categorynameFontsize = 28,
  showTicks = TRUE,
  tickInterval = NULL,
  ticklabelFontsize = 10,
  fadeLevel = 0.1,
  showTooltips = TRUE,
  showZeroTooltips = TRUE,
  tooltipNames = NULL,
  tooltipUnit = NULL,
  tooltipFontsize = 12,
  tooltipGroupConnector = " ▶ ",
  precision = NULL,
  clickAction = NULL,
  clickGroupAction = NULL
)

Arguments

data

A matrix containing the data. Must be square for the "directional" type. Column names of the matrix (if existing) will be used as group labels unless the groupNames argument is explicitely set. For the "bipartite" type, the column names label the groups on the left side of the chord diagram whereas the row names label the groups on the right side.

type

A character string for the type of chord diagram. Either "directional" (default) or "bipartite" (chord diagrams can be helpful for visualising symmetric relations between two categories of groups, i.e. contingency tables).

width

Width for the chord diagram's frame area in pixels (if NULL then width is automatically determined based on context).

height

Height for the chord diagram's frame area in pixels (if NULL then height is automatically determined based on context).

margin

Numeric margin in pixels between the outer diagram radius and the edge of the display.

palette

A character string. The name of the colorbrewer palette to be used. For bipartite diagrams, the palette is used for the column groups.

palette2

A character string. Only used for bipartite diagrams where it is the name of the colorbrewer palette to be used for the row groups.

showGroupnames

A logical scalar.

groupNames

A vector of character strings to be used for group labeling.

groupColors

A vector of colors to be used for the groups. Specifying groupColors overrides any palette given. For bipartite diagrams, the colors used for the row groups must precede the colors for the column groups.

groupThickness

Numeric thickness for the groups as a fraction of the total diagram radius.

groupPadding

Numeric padding in degrees between groups.

groupnamePadding

Numeric padding in pixels between diagram (outer circle) and group labels. Use this argument if group labels overlap with tick labels. Either a scalar value to be applied to all group labels or a numeric vector specifying padding for each group label separately.

groupnameFontsize

Numeric font size in pixels for the group labels.

groupedgeColor

Color for the group edges. If NULL group colors will be used.

chordedgeColor

Color for the chord edges.

categoryNames

A length-2 vector of character strings to be used for category labels (left and right side of a bipartite chord diagram).

categorynamePadding

Numeric padding in pixels between diagram (outer circle) and category labels in bipartite diagrams. Use this argument if category labels overlap with tick or group labels.

categorynameFontsize

Numeric font size in pixels for the category labels in a bipartite diagram.

showTicks

A logical scalar.

tickInterval

A numeric value.

ticklabelFontsize

Numeric font size in pixels for the tick labels.

fadeLevel

Numeric chord fade level (opacity value between 0 and 1, defaults to 0.1).

showTooltips

A logical scalar (defaults to TRUE).

showZeroTooltips

A logical scalar (defaults to TRUE). If set to FALSE, tooltips for the value zero are hidden.

tooltipNames

A vector of character strings to be used for group labeling in tooltips. By default equal to groupNames.

tooltipUnit

A character string for the units to be used in tooltips.

tooltipFontsize

Numeric font size in pixels for the tooltips.

tooltipGroupConnector

A character string to be used in tooltips: "<source group> <tooltipGroupConnector> <target group>". Defaults to a triangle pointing from source to target.

precision

Integer number of significant digits to be used for tooltip display.

clickAction

character string containing JavaScript code to be executed on a mouse click so that shiny can get the sourceIndex and targetIndex for the purpose of filtering the data on other visualizations

clickGroupAction

character string containing JavaScript code to be executed on a mouse click so that shiny can get the groupIndex

Source

Based on http://bl.ocks.org/mbostock/4062006 with several modifications.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
m <- matrix(c(11975,  5871, 8916, 2868,
               1951, 10048, 2060, 6171,
               8010, 16145, 8090, 8045,
               1013,   990,  940, 6907),
               byrow = TRUE,
               nrow = 4, ncol = 4)
groupnames <- c("black", "blonde", "brown", "red")
row.names(m) <- groupnames
colnames(m) <- groupnames
chorddiag(m)

mattflor/chorddiag documentation built on Aug. 10, 2020, 12:46 a.m.