跳至内容

弦图

弦图布局计算角度以生成 弦图

chord()

源代码 · 使用默认设置构造新的弦图布局。

js
const chord = d3.chord();

chord(matrix)

源代码 · 计算指定大小为 n×n 的方形 matrix 的弦图布局,其中 matrix 代表 n 个节点的网络(完全有向图)中的定向流量。

chord(matrix) 的返回值是一个 chords 数组,其中每个弦代表两个节点 ij 之间的组合双向流量(其中 i 可能等于 j),并且是一个具有以下属性的对象

  • source - 源子组
  • target - 目标子组

每个源和目标子组也是一个具有以下属性的对象

  • startAngle - 以弧度表示的起始角
  • endAngle - 以弧度表示的结束角
  • value - 流量值 matrix[i][j]
  • index - 节点索引 i

弦图通常传递给 带状图 以显示网络关系。

返回的数组仅包含值 matrix[i][j] 或 matrix[j][i] 非零的弦对象。此外,返回的数组只包含唯一的弦:给定的弦 ij 代表从 ij 的双向流量 以及ji 的流量,不包含重复的弦 jiij 的选择方式使得弦的源始终代表 matrix[i][j] 和 matrix[j][i] 中较大的值。

chords 数组还定义一个长度为 n 的辅助数组 chords.groups,其中每个组代表节点 i 的组合出流量,对应于元素 matrix[i][0 … n - 1],并且是一个具有以下属性的对象

  • startAngle - 以弧度表示的起始角
  • endAngle - 以弧度表示的结束角
  • value - 节点 i 的总出流量值
  • index - 节点索引 i

组通常传递给 以在弦图布局的圆周上生成环形图。

chord.padAngle(angle)

源代码 · 如果指定了 angle,则将相邻组之间的填充角度设置为以弧度表示的指定数字,并返回此弦图布局。如果未指定 angle,则返回当前填充角度,默认值为零。

chord.sortGroups(compare)

源代码 · 如果指定了 compare,则将组比较器设置为指定的函数或 null,并返回此弦图布局。如果未指定 compare,则返回当前组比较器,默认值为 null。如果组比较器不为 null,则它用于根据其总出流量对组进行排序。另请参见 ascendingdescending

chord.sortSubgroups(compare)

源代码 · 如果指定了 compare,则将子组比较器设置为指定的函数或 null,并返回此弦图布局。如果未指定 compare,则返回当前子组比较器,默认值为 null。如果子组比较器不为 null,则它用于根据其总出流量对给定组 i 对应的子组 matrix[i][0 … n - 1] 进行排序。另请参见 ascendingdescending

chord.sortChords(compare)

源代码 · 如果指定了 compare,则将弦比较器设置为指定的函数或 null,并返回此弦图布局。如果未指定 compare,则返回当前弦比较器,默认值为 null。如果弦比较器不为 null,则它用于根据其组合流量对 弦图 进行排序;这只会影响弦的 z 顺序。另请参见 ascendingdescending

chordDirected()

示例 · 源代码 · 用于单向流量的弦图布局。从 ij 的弦仅从 matrix[i][j] 中的值生成。

chordTranspose()

源代码 · 转置的弦图布局。有助于突出显示输出流量(而不是输入流量)。