3 分钟阅读 指南数据可视化

不用一行代码,在线做出专业弦图:从理解到实操的完整指南

弦图适合表达「谁和谁在流动、流动有多大」。这篇指南先讲清它的能力边界与判读方法,再按数据结构把 9 种弦图变体(经典、扇贝、阵营渐变、气泡、二分半环、双扇形刻度、Circos 共线性、分组流向、光谱细线)逐一对应到真实场景,附 CSV 结构与选型对照表。

不用一行代码,在线做出专业弦图:从理解到实操的完整指南

弦图(Chord Diagram)不是一张”好看但没什么用”的图。它专门回答一个问题:谁和谁之间在流动,流动有多大。这个问题看起来简单,但用错图形会一直答不好——柱状图只能比单一维度的量值,折线图擅长的是随时间变化的趋势,而”类别 × 类别”这种二维关系,两者都表达不清。

这篇指南分成两部分:先讲清弦图的能力边界和判读方法,再把 9 种常见的弦图变体逐一对应到它们真正适合的数据结构上。每个变体都附了实际生成的图和一份可以直接复制使用的 CSV 示例。

一、弦图到底在解决什么问题

当你手上是一组多对多关系数据——国家之间的贸易额、部门之间的协作频次、基因之间的共表达关系——普通的柱状图和折线图都会显得力不从心。弦图的基本结构很直观:每个类别沿圆周占据一段弧,弧长与该类别的总流量成正比;类别之间的连线,也就是”弦”,用宽度编码两两之间的流量大小。

从图形语法角度看,弦图是弧长链接图的一种变体:节点沿圆周径向排列,节点之间用带权重的弧线链接。这种设计让它在表达大量关系的同时有效降低视觉复杂度,不会像力导向图或全连接网络图那样糊成一团”毛线球”。

它适合的场景大致有这几类:

  • 贸易与人口流动:国家之间的进出口、城市之间的迁入迁出
  • 社交与传播:账号之间的互动强度、信息扩散路径
  • 生物信息学:基因共表达、蛋白互作、物种互作
  • 组织分析:部门之间的协作频次、工单与审批流向
  • 文本共现:关键词共现网络、作者合作图谱

同样重要的是它的边界。弦图牺牲了精确比较的能力:从一根弦的宽度上,你很难判断 42 和 38 的差别,而这个差别在柱状图里一眼就能看出来。所以当核心诉求是”比较单个数值”时,柱状图或点图更合适;弦图不可替代的价值在于让整体结构一眼可见——谁是枢纽、谁在边缘、阵营之间是紧密还是疏离。

还有一条硬限制:节点数超过 60、关系超过几百条之后,任何弦图都会开始变糊。这不是工具的问题,而是圆心附近的可用面积是有限的。这时需要换用下面第四、第九个变体,它们分别用不同的方式处理高密度。

二、先学会读一张弦图

在动手之前花两分钟搞清楚一张弦图该怎么读,这决定了你会不会用错模板。

  1. 看弧长,不看弧的位置。每段弧的长度只表示该节点的总量大小;圆环上从哪开始、顺时针还是逆时针都不携带信息,不同工具的排列规则不同,但都不影响结论。
  2. 看弦的宽度。它编码两两之间的流量,宽弦代表强关系。
  3. 看弦的颜色。它通常回答”这根弦属于谁”——多数实现用源节点的颜色给弦上色,所以某一色的弦聚在一起,说明这个节点是主要的输出方。
  4. 看弧内的刻度与分隔线。有些变体在弧内画了从 0 开始递增的数字刻度,那是该节点的累计流量;有些画了白色细线,那是把弧按每条关系切分后的边界,格数就等于该节点的关系条数。

把这四点连起来,你就能从一张弦图上读出三个层次的结论:全局的规模分布(弧长)、局部的强连接(弦宽)、以及结构性的角色分工(颜色聚集与弧内分格)。

三、动手前的准备:三列 CSV 的通用约定

绝大多数在线弦图工具都吃同一套数据:三列 CSV,第一列是起点,第二列是终点,第三列是数值。

source,target,value
USA,China,580
USA,Germany,320
China,Germany,210
Japan,China,180

几个实际会踩的坑,提前避开:

  • 表头:规范写法是第一行写 source,target,value。多数工具能识别并跳过,但如果你自己的表头写成”来源,去向,数量”这类中文,识别可能失败,图上会多出一个叫”来源”的节点。拿不准就把表头删掉。
  • 编码:Excel 在中文环境下”另存为 CSV”经常写成 GBK 编码,浏览器按 UTF-8 读就会把中文变成乱码。两个办法——用记事本打开另存为 UTF-8,或者干脆在 CSV 里用英文、拼音标签,导出图之后再改文字。本文所有示例统一用英文标签,就是为了让你复制过去能直接跑通。
  • 数值必须为正数:流量为 0 或负数的行会被判为非法输入。
  • 自环:起点和终点相同的行(A,A,10)在多数实现里会被忽略,因为它画不出有意义的弦。
  • 双向关系:A→B 和 B→A 是否合并,各工具策略不同——有的画成两条独立曲线,有的合并成一条并相加。用之前看一眼工具说明,避免重复计数。

四、9 种弦图变体,按数据结构对号入座

下面 9 个变体针对的是不同的数据结构与阅读诉求。每节都配了实际生成的图(图中数据即该工具的默认示例数据)和一份可直接复制使用的 CSV。

变体 1:经典圆形弦图——最通用的起点

适用:三列 source,target,value,类别之间地位对等。国家贸易、通话记录、论文引用都属于这一类。不确定用哪个模板时,从这个开始。

数据:三列 CSV,最多 200 行、60 个节点。

看图:彩色外弧沿圆周排列,弧长等于节点总流量;弧内侧有一圈从 0 递增到该节点总量的数字刻度;半透明彩带穿过圆心,越宽表示两地流量越大。

实操:拖入 CSV 即可出图,页面默认内置了一组多区域流动示例,打开就有图可看。提供三套配色主题和浅色/深色两种画布;深色模式会同时调整弦带透明度,避免在暗底上糊掉。

经典圆形弦图:彩色外弧带数字刻度,半透明彩带编码两两流量
经典圆形弦图:弧内侧的数字刻度是该节点的累计流量,彩带宽度即两地流量
source,target,value
West Asia,Africa,8
Africa,Europe,9
East Asia,Europe,8
Europe,North Ame.,12
Latin Ame.,Europe,6

工具:在线弦图生成器

变体 2:扇贝弦图——一侧节点是另一侧的十几倍时

适用:典型的二分引用关系,比如”8 家公司 → 78 项技术""少数机构 → 大量主题标签”。标准弦图遇到这种”一侧极少、一侧极多”的数据时,节点少的那侧弧段会特别长、节点多的那侧标签会挤成一团,两边都读不了。

数据:三列 source,target,value。source 是底部分组(≤12 个),target 是顶部节点(≤120 个),最多 300 行——注意这个上限比其他变体宽,正是为了容纳”少数对多数”。

看图:圆周被切成两个扇区:底部约三分之一的圆弧放分组(宽度按流量加权,填充醒目彩色),顶部约三分之二的圆弧放大量节点(等宽排列,保证标签可读)。两侧之间用细缎带绕过圆心连接,形成扇贝状扇面。标签沿径向排布,不会互相缠绕。

扇贝弦图:底部分组弧按流量加权,顶部节点弧等宽排列,细缎带绕过圆心连接
扇贝弦图:底部彩色的分组弧按流量加权,顶部等宽节点弧保证标签可读
source,target,value
CompanyA,Patent-101,3
CompanyA,Patent-118,2
CompanyB,Patent-101,4
CompanyB,Patent-127,3
CompanyC,Patent-118,2

工具:扇贝弦图生成器

变体 3:冷暖撞色渐变弦图——当节点分成两个”阵营”

适用:节点天然分成两组对立或对应的阵营,比如”上游供应商 vs 下游客户""竞品 A 的用户 vs 竞品 B 的用户""处理组 vs 对照组”。标准单色弦图看不出阵营感,而这个变体让同阵营的节点聚成连续弧段,跨阵营的连线渲染为从暖色渐变到冷色的双色丝带——流量往哪个方向走,从颜色变化上就能读出来。

数据:source,target,value,group。第四列可选,填 warm / cold 指定阵营;不填则自动均分。最多 200 行。

看图:Circos 风格的布局让节点标签随圆周自动旋转,中心留白呈现经典环形美学。每条连线的填充色从源节点颜色渐变到目标节点颜色,透明叠层营造丝带质感。悬停时无关元素自动淡化,聚焦当前关系。

冷暖撞色渐变弦图:同阵营节点聚成连续弧段,跨阵营连线为双色渐变丝带
冷暖撞色渐变弦图:连线颜色从源端渐变到目标端,方向一目了然
source,target,value,group
UpstreamA,DownstreamX,42,warm
UpstreamB,DownstreamY,31,cold
UpstreamA,DownstreamY,24,warm
UpstreamC,DownstreamX,18,cold

工具:Circos 渐变弦图生成器

变体 4:气泡弦图——当节点自身也携带指标时

适用:每个参与者的角色不止是”和谁有往来”,还自带规模指标和质量指标。文献计量里的合作网络最典型:国家既是合作节点,又有”发文量”和”影响力”两个自身属性。供应链里,供应商既有供货关系,又有产能规模和质量评分。

数据:两节 CSV,中间空一行。第一节是关系行 source,target,value(最多 120 行);第二节是节点指标 name,size,color,可选——没写的节点会自动按其流量计算。

看图:节点变成大圆外的一圈气泡,直径承担第一指标(size),填充色沿青→蓝连续色带承担第二指标(color),弦线粗细承担关系强弱(value)。因为圆本身不参与编码,节点即使多达 30 个,标签仍能沿圆外侧放射排布而不互相挤占。

气泡弦图:节点为圆外气泡,直径编码规模、颜色编码质量,弦线编码关系强弱
气泡弦图:同一张图上同时读”谁和谁强”与”谁更重要”
source,target,value
USA,China,210
China,Germany,150
USA,Germany,95

name,size,color
USA,85,92
China,78,88
Germany,45,73

工具:气泡弦图生成器

变体 5:双色半环二分流向弦图——需要明确”方向”时

适用:源和目标的身份截然不同,需要让”谁指向谁”一目了然。比如威胁建模中的”攻击面 → 风险类型”、需求追溯中的”需求 → 测试用例”、能力映射中的”能力 → 目标”。

数据:source,target,value,源与目标不得同名(必须是纯二分关系),最多 120 行。

看图:整圆被水平直径切成上下两个半环——上环用一种色系放所有源节点,下环用另一种色系放目标节点,语义上一眼可分。每条关系渲染为一条贝塞尔曲线,从源扇区内缘出发、穿过圆心收拢区、抵达目标扇区内缘,并带一个小箭头指示方向。节点扇区宽度按总流量加权,标签沿环切线排布。

双色半环二分流向弦图:上环源节点、下环目标节点,带箭头指示方向
双色半环二分流向弦图:上下半环区分两类角色,箭头标出流向
source,target,value
Security,Data Breach,6
Security,Account Takeover,4
Reliability,Downtime,5
Scalability,Bottleneck,3
Compliance,Fine,2

工具:双色半环弦图生成器

变体 6:双扇形彩色弦图——带刻度轴的二分关系

适用:渠道流转、成本分摊、需求覆盖等需要”读出数值”的二分关系数据。与变体 5 的区别在于,这个变体给每个扇区配了一条从 0 起的刻度轴——弧长按流量分配,主刻度每 10 单位一格,读数不需要靠猜。

数据:source,target,value,源集与目标集不可重叠,最多 120 行,每组最多 8 个节点。

看图:整体轮廓像一只沙漏——12 点方向的一扇放源节点(用饱和实色),6 点方向的一扇放目标节点(用同色系浅色调呼应),左右两侧留出开口。半透明彩色弦带穿过中心收腰相连,疏密变化就等于流量分布本身。

双扇形彩色弦图:双扇沙漏布局,扇区带从 0 起的刻度轴
双扇形彩色弦图:沙漏形双扇布局,两侧扇区各带刻度轴
source,target,value
ChannelA,ProductLine1,45
ChannelA,ProductLine2,30
ChannelB,ProductLine1,22
ChannelB,ProductLine2,18
ChannelC,ProductLine1,12

工具:双扇形彩色弦图生成器

变体 7:Circos 共线性弦图——当”位置”比”流量”更重要时

适用:这是 9 个变体里唯一不把节点当离散分类的一个。它处理的是”区间到区间的映射”:基因组共线性(哪一段染色体对应哪一段)、磁盘块迁移(哪些块被搬到了哪里)、地址区间重映射、订单批次重组、地层深度对比。

数据:7 列 CSV——source_group, source_start, source_end, target_group, target_start, target_end, color,最多 240 行。一行描述的不是”一条带权重的边”,而是一条完整的区间映射。

看图:圆环上的每一段不是离散节点,而是一条连续轨道,轨道上带从 0 开始的坐标刻度。中心细曲线把源轨道上的一个区间映射到目标轨道上的另一个区间。交叉越多,越说明区间顺序被置换、重组或打散——这正是共线性分析最需要的视觉信号。

Circos 共线性弦图:连续轨道带坐标刻度,中心细曲线映射区间到区间
Circos 共线性弦图:轨道上的坐标刻度 + 区间到区间的细线映射
source_group,source_start,source_end,target_group,target_start,target_end,color
AtChr1,0,1500,Sca1,200,1800,blue
AtChr2,0,900,ApChr1,500,1400,orange
AtChr1,1500,2600,Sca2,0,1100,blue

工具:Circos 共线性弦图生成器

变体 8:分组流向弦图——“很多来源汇入少数分组”的结构

适用:样本归类、渠道归因、关键词主题归属、批次去向。这类数据天然是二部结构——一边数量多、体量小,另一边数量少、体量大。

数据:source,target,value,来源 ≤24 个、分组 ≤12 个,两组名称不能重复,最多 200 行。

看图:圆环被切成两个半圈——左半圈给来源(统一一种颜色),右半圈给分组(每组一色,配右侧竖排图例)。每个分组弧内部有白色分隔线,按各来源的流量切成小格,格数就是该分组由几个来源构成。想知道”A 组的东西主要从哪来”,顺着 A 组弧往里看,所有指向它的彩带颜色一致,构成比例一眼可见。

分组流向弦图:左半圈来源弧统一配色,右半圈分组弧每组一色并带白色分隔线
分组流向弦图:分组弧内的白色分隔线把弧切成小格,格数即来源个数
source,target,value
kw-A,Topic1,15
kw-B,Topic1,8
kw-C,Topic2,12
kw-D,Topic1,6
kw-E,Topic2,9

工具:分组流向弦图生成器

变体 9:光谱编号弦图——节点多、关系密集时的”可追踪网络”

适用:几十个节点、上百条关系的密集关系矩阵。标准弦图的宽彩带在这种场景下会互相遮盖成一团色块,你甚至无法顺着某一根带子走完它连接的两端。这个变体用两个关键设计解决它:颜色即排名,细线可追踪。

数据:source,target,value,节点 ≤60 个,最多 200 行。A→B 与 B→A 会自动合并为一条双向关系(数值相加)。

看图:节点按总量从大到小顺时针排列,弧色取自一条连续光谱色带(红→橙→黄→绿→青→蓝)。最红的节点最大,最蓝的节点最小——色相本身就是排名刻度盘,不需要对照图例。每条关系画成等宽细线,从两端节点弧段中点出发向圆心收拢并交叉,密集时织成一张能顺着走的网。圆心有一圈半透明粉色圆环作为视觉锚点,每段弧顶有黑色小圆点标记。

光谱编号弦图:弧色沿光谱渐变表示排名,关系为等宽细线,中心有粉色圆环
光谱编号弦图:色相即排名(最红最大),细线让密集网络仍然可追踪
source,target,value
PaperA,PaperB,8
PaperA,PaperC,3
PaperB,PaperC,5
PaperC,PaperD,12
PaperA,PaperD,3

工具:光谱编号弦图生成器

五、选型速查表

你的数据结构推荐变体关键判断依据
普通 source,target,value,类别对等变体 1 经典圆形弦图没有特殊结构,从默认模板开始
一侧类别极少、另一侧极多变体 2 扇贝弦图比如”8 家公司 → 78 项技术”
节点天然分成两个阵营变体 3 冷暖撞色弦图需要让阵营感跳出来
节点自身还携带规模 / 质量指标变体 4 气泡弦图需同时看”谁和谁强”和”谁更重要”
源和目标角色不同,需要方向感变体 5 双色半环弦图威胁建模、需求追溯类场景
二分关系,且需要读出数值变体 6 双扇形弦图每个扇区自带刻度轴
区间到区间的映射,不是离散节点变体 7 Circos 共线性弦图基因组、地址映射、批次重组
多来源汇入少数分组变体 8 分组流向弦图归因、归类、主题归属
节点多(>30)、关系密集(>80)变体 9 光谱编号弦图需要可追踪的网络而非色块

选择的核心逻辑是先判断数据结构,再看视觉目标。如果你的数据就是标准的 source,target,value 且类别在 20 个以内,变体 1 永远是最安全的选择。只有当默认模板在信息密度或可读性上遇到瓶颈时——标签挤了、阵营感丢了、方向不明确、数值读不出来——再切换到对应的专用变体。

六、让它看起来专业:四个细节

  1. 导出格式按用途选。PNG 2 倍高清适合 PPT、报告和社交媒体;SVG 是矢量格式,适合论文排版,以及后续在 Illustrator、Inkscape 里改颜色和字号。
  2. 深浅色不是审美问题,而是投放问题。深色底在投影和暗色报告里更清晰,浅色底在打印和网页里更稳妥。切换之后记得重新导出——预览和导出用的是同一套配色,所以所见即所得。
  3. 标签密度决定可读性上限。节点超过 30 个时,别指望每个名字都清晰可读。要么改用变体 8、变体 9 这类自带降级策略的图形,要么减少节点数。
  4. 用画布导出,别用系统截图。工具自带的导出按钮只输出图本身;系统截图会带上界面边框、浏览器缩放和压缩噪点。

上面提到的九个实现都是同一种使用形态:打开网页、上传 CSV、切换深浅色、导出图片。数据在浏览器里解析和绘制,不上传到服务器,也不需要注册;导出的图不带水印。

七、结语

弦图的价值是让复杂的多对多关系变得一眼可读。而门槛其实主要不在绘图,而在两件事:判断数据结构属于哪一类,以及正确理解图上每一个视觉通道。把这两件事弄清楚,剩下的就是上传一份 CSV。

上面 9 个变体覆盖了绝大多数常见的关系数据形态。如果它们都不完全贴合你的数据,通常也意味着这个问题需要的不是弦图,而是一张柱状图或一张网络图——这同样是值得早点知道的结论。