跳至內容

d3-chord

29,630 black0k5k10k15k20k25k20,230 blond0k5k10k15k20k40,290 brown0k5k10k15k20k25k30k35k40k9,850 red0k5k11,975 black → black5,871 black → blond 1,951 blond → black8,916 black → brown 8,010 brown → black2,868 black → red 1,013 red → black10,048 blond → blond16,145 brown → blond 2,060 blond → brown6,171 blond → red 990 red → blond8,090 brown → brown8,045 brown → red 940 red → brown6,907 red → redFork ↗︎

弦圖可視化圖形中一組節點之間的流程,例如有限狀態之間的轉換機率。上方的圖表顯示一個來自 Circos 的假資料集,內容是染髮的人數。

D3 的弦圖配置使用大小為 n×n 的正方形矩陣來表示流程,其中 n 是圖形中節點的數量。每個值 matrix[i][j] 表示從第 i 個節點到第 j 個節點的流程。(每個數字 matrix[i][j] 必須是非負數,但如果從節點 i 到節點 j 沒有流程,則可以為零。)

在上方,每一列和每一行都代表一種髮色(黑色金色棕色紅色);每個值都代表從一種髮色染成另一種髮色的人數。例如,有 5,871 人原本有黑色頭髮,並將其染成金色,而有 1,951 人原本有金色頭髮,並將其染成黑色。矩陣對角線代表維持相同髮色的人數。

js
const matrix = [
  // to black, blond, brown, red
  [11975,  5871, 8916, 2868], // from black
  [ 1951, 10048, 2060, 6171], // from blond
  [ 8010, 16145, 8090, 8045], // from brown
  [ 1013,   990,  940, 6907]  // from red
];

弦圖透過排列人口,以起始顏色沿著圓周排列,並在每種顏色之間繪製色帶,來視覺化這些轉換。色帶的起始和結束寬度與具有各自起始和結束顏色的人數成正比。色帶的顏色(任意)是兩個值中較大的顏色。

請參閱下列其中一個:

  • - 弦圖的配置
  • 色帶 - 弦圖的形狀基元