13 Chord Diagram plots
Chord Diagram plots are pretty much the same type of visualization as Sankey and Alluvial plots, but with the twist that the nodes are located forming a circle, therefore the links resembling chords. These type of visualizations can be achieved using package.
13.1 Basic usage
This is how it looks:
# Basic chord diagram.
sample$assignment <- ifelse(sample$seurat_clusters %in% c("0", "4", "7"), "A", "B")
sample$assignment[sample$seurat_clusters %in% c("1", "2")] <- "C"
sample$assignment[sample$seurat_clusters %in% c("10", "5")] <- "D"
sample$assignment[sample$seurat_clusters %in% c("8", "9")] <- "E"
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment")
p
Basic Chord Diagram.
13.2 Control the gaps between and within groups
We can modify the gaps between from and to, provided that there are not so many elements that this can not be accomplished. For this, we use big_gap:
# Increase gap between from and to groups.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
big.gap = 40)
p
Chord Diagram with increased big gap.
Similarly, we can also modify the gaps between the groups inside from and to with small_gap:
# Increase gap width groups in from and to.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
small.gap = 5)
p
Chord Diagram with increased small gap.
13.3 Control the alignment of the diagram
We can force the alignment of the starting poing of the Chord diagram using the alignment parameter:
# Control the alignment of the diagram.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
alignment = "horizontal")
p
Chord Diagram starting horizontally.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
alignment = "vertical")
p
Chord Diagram starting vertically.
13.4 Control the directions of the links
Also, we can define the direction of the interaction by providing different values to directional: - 0: The links have no direction. - 1: The links go from from to to. - -1: The links go from to to from. - 2: The links are bidrectional.
# We need to set direction.type to diffHeight only as arrows are, by nature, directional.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
directional = 0,
direction.type = "diffHeight")
p
Chord Diagram with links without any direction.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
directional = 1)
p
Chord Diagram with links going from “from” to “to”.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
directional = -1)
p
Chord Diagram with links going from “to” to “from”.
# We need to set direction.type to diffHeight only as arrows are, by nature, directional.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
directional = 2,
direction.type = "diffHeight")
p
Chord Diagram with links going in both directions.
13.5 Add padding to the labels
One can add more padding to the labels by using padding_labels. The number provided is the amount of whitespaces padding the label.
# Add more padding to the labels.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
padding_labels = 8)
p
Chord Diagram with extra padding.
13.6 Scale the nodes
If we want to show the nodes with equal size, links reflecting a proportion instead, we can set scale = TRUE.
# Scale the size of the nodes.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
scale = TRUE,
padding_labels = 8)
p
Chord Diagram with scaled nodes.
13.7 Self linking
We can also control whether we want to allow self linking between the nodes or not. For this, we can set self.link = 2 to allow them or self.link = 1 to prevent them.
# Prevent self linking.
sample$seurat_clusters2 <- sample$seurat_clusters
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "seurat_clusters2",
self.link = 1,
scale = TRUE)
p
Chord Diagram with prevented self linking.
# Allow self linking.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "seurat_clusters2",
self.link = 2,
scale = TRUE)
p
Chord Diagram with allowed self linking.
13.8 Control the appearance of the arrows
The arrows can be modified by using link.arr.type parameter:
# Set triangle arrows.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
link.arr.type = "triangle")
p
Chord Diagram with triangle arrows.
# Set big arrows.
p <- SCpubr::do_ChordDiagramPlot(sample = sample,
from = "seurat_clusters",
to = "assignment",
link.arr.type = "big.arrow")
p
Chord Diagram with big arrows.