설명 / Description
아크 다이어그램은 네트워크의 모든 노드를 하나의 가로(또는 세로) 선을 따라 배치하고, 노드 사이의 연결을 선 위(또는 아래)에 반원 모양의 호(arc)로 그립니다. 그 결과 포스 디렉티드 네트워크 다이어그램에서 흔히 발생하는 노드 겹침 문제를 피하면서도 연결 구조를 그대로 드러내는 압축적인 1차원 레이아웃이 만들어집니다.
An arc diagram places all nodes of a network along a single horizontal (or vertical) line and draws connections between them as semicircular arcs above (or below) the line. The result is a compact, one-dimensional layout that avoids the node-overlap problems of force-directed network diagrams while still revealing the structure of connections.
아크 다이어그램의 핵심은 선을 따라 배치되는 노드의 순서가 가독성에 결정적인 영향을 미친다는 점입니다. 밀접하게 연결된 그룹이 서로 인접하도록 배치하면, 호들이 짧고 중첩된 곡선의 눈에 띄는 군집을 이룹니다. 반대로 순서가 좋지 않으면 호들이 광범위하게 교차하며 다이어그램이 뒤엉키게 됩니다. 최적의 노드 순서를 찾는 문제는 최소 선형 배치 문제(minimum linear arrangement problem)와 관련되며, 스펙트럴 정렬, 커뮤니티 탐지, 또는 도메인 지식에 기반한 수동 정렬 같은 휴리스틱이 흔히 사용됩니다.
The key insight of the arc diagram is that the ordering of nodes along the line dramatically affects readability. When nodes are arranged so that densely connected groups are adjacent, the arcs form visible clusters of short, nested curves. When the ordering is poor, arcs cross extensively and the diagram becomes tangled. Optimal node ordering is related to the minimum linear arrangement problem, and heuristics like spectral ordering, community detection, or manual domain-driven ordering are commonly used.
아크 다이어그램은 노드 순서 자체에 본질적인 의미가 있는 순차적 또는 순서가 있는 데이터에 특히 효과적입니다 — 예를 들어 책 속 등장인물을 처음 언급된 순서대로 배치하거나, 염색체를 따라 유전자를 배열하는 경우입니다. 각 호의 세로 폭은 선형 순서에서 연결된 두 노드 사이의 "거리"를 인코딩하므로, 긴 호는 멀리 떨어진 노드 사이의 연결을, 짧은 호는 인접한 노드 사이의 연결을 나타냅니다. 이 때문에 아크 다이어그램은 순서가 있는 네트워크에서 지역적 군집과 장거리 연결 다리를 동시에 드러내는 데 자연스러운 선택지가 됩니다.
Arc diagrams are particularly effective for sequential or ordered data where the node order has intrinsic meaning -- for example, characters in a book appearing in order of first mention, or genes arranged along a chromosome. The vertical extent of each arc encodes the "distance" between connected nodes in the linear ordering, so long arcs represent connections between distant nodes and short arcs represent local connections. This makes the arc diagram a natural choice for revealing both local clusters and long-range bridges in ordered networks.
언제 사용하나 / When to Use
- 노드가 자연스러운 선형 순서를 가지는 네트워크의 연결을 시각화할 때
- Visualizing connections in a network where nodes have a natural linear order
- 순차적 데이터에서 군집과 장거리 연결 다리를 드러낼 때
- Revealing clusters and long-range bridges in sequential data
- 서사 속 등장인물의 동시 출현이나 시간순으로 정렬된 논문 간 인용 관계를 보여줄 때
- Showing character co-occurrence in narratives or citation links between chronologically ordered papers
- 네트워크 규모에 비해 포스 디렉티드 레이아웃이 지나치게 겹치거나 혼잡해질 때
- When a force-directed layout produces too much overlap or clutter for the network size
이럴 땐 피하세요 / When NOT to Use
- 네트워크에 자연스럽거나 의미 있는 노드 순서가 없을 때 -- 포스 레이아웃을 사용하는 네트워크 다이어그램이 더 나을 수 있습니다
- When the network has no natural or meaningful node ordering -- a network diagram with force layout may be better
- 매우 밀도가 높은 네트워크(노드당 엣지가 많은 경우) -- 호들이 읽을 수 없는 뒤엉킴이 됩니다
- For very dense networks (many edges per node) -- arcs become an unreadable tangle
- 노드의 공간적 배치가 중요할 때(예: 지리적 네트워크) -- 지도나 공간적 네트워크 다이어그램을 사용하세요
- When the spatial layout of nodes matters (e.g., geographic networks) -- use a map or spatial network diagram
- 계층 구조에 초점을 둘 때 -- 트리, 선버스트, 또는 트리맵을 사용하세요
- When the focus is on hierarchical structure -- use a tree, sunburst, or treemap
구조 / Anatomy
- 노드 라인: 모든 노드가 배치되는 하나의 곧은 축(보통 가로 방향)입니다.
- Node line: A single straight axis (usually horizontal) along which all nodes are placed.
- 노드: 의미 있는 기준에 따라 정렬되어 선을 따라 배치된 점 또는 레이블이 붙은 지점입니다.
- Nodes: Dots or labeled points positioned along the line, ordered by some meaningful criterion.
- 호(Arc): 노드 쌍을 연결하는 반원형 곡선입니다. 호의 높이는 연결된 노드 사이의 거리에 비례합니다.
- Arcs: Semicircular curves connecting pairs of nodes. Arc height is proportional to the distance between the connected nodes.
- 호 굵기: 선의 두께나 불투명도로 엣지의 가중치나 빈도를 인코딩할 수 있습니다.
- Arc weight: Line thickness or opacity can encode edge weight or frequency.
- 노드 레이블: 각 노드를 식별하는, 노드 아래나 옆에 표시되는 텍스트입니다.
- Node labels: Text below or beside each node identifying it.
- 색상 인코딩: 그룹, 유형, 또는 커뮤니티 소속에 따라 호나 노드에 색을 입힙니다.
- Color encoding: Arcs or nodes colored by group, type, or community membership.
변형 / Variations
- 이중 아크 다이어그램: 선 위와 아래 양쪽에 호를 그려 카테고리를 구분합니다(예: 긍정적 관계와 부정적 관계).
- Double arc diagram: Arcs on both sides of the line, with categories above and below (e.g., positive and negative relationships).
- 세로 아크 다이어그램: 노드를 세로로 배치하고 호가 좌우로 휘어집니다.
- Vertical arc diagram: Nodes arranged vertically with arcs curving left or right.
- 가중 아크 다이어그램: 호의 두께로 엣지 가중치를 인코딩하여, 선형 레이아웃이지만 코드 다이어그램과 비슷한 리본 형태의 효과를 만듭니다.
- Weighted arc diagram: Arc thickness encodes edge weight, producing a ribbon-like effect similar to a chord diagram but in linear layout.
- 계층적 아크 다이어그램: 계층 구조(예: 분류 체계)에 따라 노드를 정렬하고, 호는 계층을 벗어난 교차 연결을 보여줍니다.
- Hierarchical arc diagram: Nodes ordered by hierarchy (e.g., taxonomy) with arcs showing non-hierarchical cross-links.
코드 레퍼런스 / Code Reference
// Observable Plot - arc diagram using link marks
Plot.plot({
marks: [
Plot.link(edges, {
x1: d => nodeOrder.indexOf(d.source),
x2: d => nodeOrder.indexOf(d.target),
y1: 0,
y2: 0,
curve: "bump-y",
stroke: "steelblue",
strokeWidth: d => d.weight,
strokeOpacity: 0.5,
tip: true
}),
Plot.dot(nodes, {
x: (d, i) => i,
y: 0,
r: 6,
fill: "group"
}),
Plot.text(nodes, {
x: (d, i) => i,
y: 0,
text: "name",
dy: 15,
fontSize: 10
})
],
x: { axis: null },
y: { axis: null }
})