logo

G2

  • 文档
  • 图表介绍
  • API
  • 图表示例
  • 主题
  • 周边生态
  • 所有产品antv logo arrow
  • 5.3.3
  • 快速上手
  • 简介
    • 什么是 G2
    • 在前端框架中使用
    • Spec 和 API
  • 核心概念
    • 图表(Chart)
      • G2 图表组成
      • 如何使用图表
    • 标记(Mark)
      • 概览
      • area
      • box
      • boxplot
      • cell
      • chord
      • density
      • gauge
      • heatmap
      • image
      • interval
      • line
      • lineX
      • lineY
      • link
      • liquid
      • sunburst
      • point
      • polygon
      • range
      • rangeX
      • rangeY
      • rect
      • shape
      • text
      • vector
      • wordCloud
    • 视图(View)
    • 数据(Data)
      • 概览
      • custom
      • ema
      • fetch
      • filter
      • fold
      • inline
      • join
      • kde
      • log
      • map
      • pick
      • rename
      • slice
      • sort
      • sortBy
    • 编码(Encode)
    • 比例尺(Scale)
      • 概览
      • band
      • linear
      • log
      • ordinal
      • point
      • quantile
      • quantize
      • sqrt
      • threshold
      • time
      • pow
    • 转换(Transform)
      • 概览
      • bin
      • binX
      • diffY
      • dodgeX
      • flexX
      • group
      • groupColor
      • groupX
      • groupY
      • jitter
      • jitterX
      • jitterY
      • normalizeY
      • pack
      • sample
      • select
      • selectX
      • selectY
      • sortColor
      • sortX
      • sortY
      • stackEnter
      • stackY
      • symmetryY
    • 坐标系(Coordinate)
      • 概览
      • fisheye
      • parallel
      • polar
      • theta
      • transpose
      • radial
      • cartesian3D
      • helix
    • 样式(Style)
    • 动画(Animate)
      • 概览
      • fadeIn
      • fadeOut
      • growInX
      • growInY
      • morphing
      • pathIn
      • scaleInX
      • scaleInY
      • scaleOutX
      • scaleOutY
      • waveIn
      • zoomIn
      • zoomOut
    • 状态(State)
    • 交互(Interaction)
      • 概览
      • brushAxisHighlight
      • brushHighlight
      • brushXHighlight
      • brushYHighlight
      • brushFilter
      • brushXFilter
      • brushYFilter
      • chartIndex
      • elementHighlight
      • elementHighlightByColor
      • elementHighlightByX
      • elementSelect
      • elementSelectByColor
      • elementSelectByX
      • fisheye
      • legendFilter
      • legendHighlight
      • poptip
      • scrollbarFilter
      • sliderFilter
    • 复合(Composition)
      • 概览
      • facetCircle
      • facetRect
      • repeatMatrix
      • spaceFlex
      • spaceLayer
      • timingKeyframe
    • 主题(Theme)
      • 概览
      • academy
      • classic
      • classicDark
    • 事件(Event)
    • 颜色映射(Color)
  • 图表 API
  • 图表组件
    • 标题(Title)
    • 坐标轴(Axis)
    • 图例(Legend)
    • 滚动条(Scrollbar)
    • 缩略轴(Slider)
    • 提示信息(Tooltip)
    • 数据标签(Label)
  • 进阶主题
    • 关系图(Graph)
      • forceGraph
      • pack
      • sankey
      • tree
      • treemap
    • 地图(Geo)
      • geoPath
      • geoView
    • 3D 图表(3D Chart)
      • 绘制 3D 图表
      • point3D
      • line3D
      • interval3D
      • surface3D
    • 插件扩展(Plugin)
      • renderer
      • rough
      • lottie
      • a11y
    • 按需打包
    • 设置纹理
    • 服务端渲染(SSR)
    • Spec 函数表达式支持 (5.3.0 支持)
  • 版本特性
    • 新版本特性
    • v4 升级 v5 指南
  • 常见问题 FAQ

chord

上一篇
cell
下一篇
density

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

chord是一种用于可视化矩阵关系数据的环形图表,通过围绕圆周排列的节点弧及相互连接的带状曲线,直观展示不同类别间的双向流量或关联强度。在chord中,数据点(节点)通常沿着圆环排列,通过弦(曲线)来连接节点之间的关系或流动。每条弦不仅可以体现两个节点之间的连接,还可以通过视觉通道(如颜色、宽度、透明度等)来表示关系的权重或强度。弦图广泛应用于社交网络、系统调用关系、流量分布和交易流分析等场景,通过清晰地展现节点之间的复杂连接,可以帮助用户快速理解数据中的结构和模式。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart.options({
type: 'chord',
layout: { nodeWidthRatio: 0.05 },
data: {
value: {
links: [
{ source: '北京', target: '天津', value: 30 },
{ source: '北京', target: '上海', value: 80 },
{ source: '北京', target: '河北', value: 46 },
{ source: '北京', target: '辽宁', value: 49 },
{ source: '北京', target: '黑龙江', value: 69 },
{ source: '北京', target: '吉林', value: 19 },
{ source: '天津', target: '河北', value: 62 },
{ source: '天津', target: '辽宁', value: 82 },
{ source: '天津', target: '上海', value: 16 },
{ source: '上海', target: '黑龙江', value: 16 },
{ source: '河北', target: '黑龙江', value: 76 },
{ source: '河北', target: '内蒙古', value: 24 },
{ source: '内蒙古', target: '北京', value: 32 },
],
},
},
scale: {
color: {
range: [
'#4e79a7',
'#f28e2c',
'#e15759',
'#76b7b2',
'#59a14f',
'#edc949',
'#af7aa1',
'#ff9da7',
'#9c755f',
'#bab0ab',
],
},
},
style: { labelFontSize: 15, linkFillOpacity: 0.6 },
});
chart.render();

配置项

属性描述类型默认值必选
encode配置 chord 标记的视觉通道,包括color、shape等,用于指定视觉元素属性和数据之间的关系encode-
layout配置 chord 布局方式layout-
scale配置 chord 标记的图形缩放,包括x、y、color、shape等scale{x: { type: 'identity' },y: { type: 'identity' }}
style配置 chord 图形样式style-

encode

属性描述类型默认值
color映射节点或连接弦的颜色,用于区分不同的类别或关系强度encode-
nodeShape弦图中节点的形状,定义节点在可视化中的具体外观表现。string| Function<string>polygon
linkShape弦图中连接弦的形状,定义弦在可视化中的具体外观表现。string| Function<string>ribbon
source定义连接弦的起点,通常映射到一个节点字段string| Function<string>source
target定义连接弦的终点,通常映射到另一个节点字段string| Function<string>target

source/target

source、target 视觉通道影响 chord 图形标记连接弦的起点和终点的重要属性。source 映射到数据中表示连接关系的起始节点字段,而 target 则映射到连接关系的终止节点字段。这两个属性共同构建了弦图中节点之间的关系逻辑,通过直观的连接弦表现节点之间的交互或依赖。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart.options({
type: 'chord',
data: {
value: {
links: [
{ begin: '北京', end: '天津', value: 34 },
{ begin: '北京', end: '上海', value: 95 },
{ begin: '北京', end: '河北', value: 61 },
{ begin: '北京', end: '辽宁', value: 32 },
{ begin: '北京', end: '黑龙江', value: 84 },
{ begin: '北京', end: '吉林', value: 19 },
{ begin: '天津', end: '河北', value: 62 },
{ begin: '天津', end: '辽宁', value: 34 },
{ begin: '天津', end: '上海', value: 48 },
{ begin: '上海', end: '黑龙江', value: 67 },
{ begin: '河北', end: '黑龙江', value: 37 },
{ begin: '河北', end: '内蒙古', value: 51 },
{ begin: '内蒙古', end: '北京', value: 56 },
],
},
},
encode: {
source: 'begin',
target: 'end',
},
});
chart.render();

source、target等 encode 属性也支持动态获取数据中的值,可以传入一个方法,chart 在执行时会调用这个方法计算出需要的结果

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart.options({
type: 'chord',
data: {
value: {
links: [
{ begin: '北京', end: '天津', value1: 34, value2: 46 },
{ begin: '北京', end: '上海', value1: 95, value2: 69 },
{ begin: '北京', end: '河北', value1: 61, value2: 62 },
{ begin: '北京', end: '辽宁', value1: 32, value2: 82 },
{ begin: '北京', end: '黑龙江', value1: 84, value2: 30 },
{ begin: '北京', end: '吉林', value1: 19, value2: 1 },
{ begin: '天津', end: '河北', value1: 62, value2: 24 },
{ begin: '天津', end: '辽宁', value1: 34, value2: 16 },
{ begin: '天津', end: '上海', value1: 48, value2: 49 },
{ begin: '上海', end: '黑龙江', value1: 67, value2: 80 },
{ begin: '河北', end: '黑龙江', value1: 37, value2: 67 },
{ begin: '河北', end: '内蒙古', value1: 51, value2: 16 },
{ begin: '内蒙古', end: '北京', value1: 56, value2: 76 },
],
},
},
encode: {
source: (d) => d.begin,
target: (d) => d.end,
},
});
chart.render();

更多的encode配置,可以查查看 encode 介绍页面。

layout

layout 属性用于控制弦图的布局方式,定义节点和连接弦如何在画布上呈现。弦图的布局通常以圆形(环形)为基础,将所有节点均匀地分布在圆周上,并通过连接弦来展示节点之间的关系和权重。通过 layout 配置,可以进一步调整节点位置、连接方式和图形的结构。

属性描述类型默认值
y布局时 y 轴的坐标number0
id节点的键Function<string | number>(node) => node.key
source设置弦图的来源节点数据字段Function<string>(edge) => edge.source
target设置弦图的目标节点数据字段Function<string>(edge) => edge.target
sourceWeight来源的权重Function<number>(edge) => edge.value | 1
targetWeight目标的权重Function<number>(edge) => edge.value | 1
sortBy排序方法,可选 id, weight, frequency 排序或者自定义排序方法string | Function<number>null
nodeWidthRatio弦图节点的宽度配置,0 ~ 1,参考画布的宽度number0.05
nodePaddingRatio弦图节点之间的间距,0 ~ 1,参考画布的高度number0.1

scale

scale 属性用于定义数据字段如何映射到图形的视觉属性(如节点位置、弦的长度、颜色等),从而影响弦图的呈现方式。通过配置 scale,可以调整节点的排列顺序、连接弦的权重比例或颜色映射,使图表更符合数据特征或用户的分析需求。

属性描述类型默认值
x定义节点在圆周上的排列位置,可以映射到分类或数值字段Record<string, scale>{ type: 'identity' }
y控制节点或弦的投影位置,通常在弦图中不常显式设置Record<string, scale>{ type: 'identity' }
color定义节点或连接弦的颜色映射规则,用于区分不同的类别或关系强度Record<string, scale>-
size映射连接弦的粗细或节点的大小,以表示权重或强度Record<string, scale>-

更多的scale配置,可以查查看 scale 介绍页面。

style

style 属性提供了一系列用于定制弦图视觉效果的配置选项,主要作用于节点(node)、连接弦(link)和标签(label)。

属性描述类型默认值
linkFillOpacitychord 图形中连接弦(即连接不同节点之间的关系线)的填充透明度的。number | Function<number>1
linkFillchord 图形中连接弦(即连接不同节点之间的关系线)的填充颜色string | Function<number>-
linkStrokechord 图形中连接弦的边框颜色string | Function<number>-
linkOpacitychord 图形中连接弦的整体透明度(包括填充和边框)number | Function<number>0.5
linkLineDashchord 图形中连接弦边框的虚线样式[number, number]-
labelFillchord 图形中节点标签的字体颜色string | Function<number>-
labelFillOpacitychord 图形中节点标签字体颜色的透明度number | Function<number>0.6
labelFontSizechord 图形中节点标签(Label)的字体大小number | Function<number>10
labelFontWeightchord 图形中节点标签的字体粗细(如 "normal"、"bold")string| numbernormal
labelOpacitychord 图形中节点标签的整体透明度number | Function<number>1
nodeFillchord 图形中节点的填充颜色string | Function<number>-
nodeFillOpacitychord 图形中节点的填充透明度number | Function<number>1
nodeStrokechord 图形中节点的边框颜色string | Function<number>-
nodeOpacitychord 图形中节点的整体透明度number | Function<number>1
nodeLineDashchord 图形中节点边框的虚线样式[number, number]-
cursor鼠标样式。同 css 的鼠标样式,默认 'default'。string | Function<number>'default'

更多的style配置,可以查看 style 介绍页面。

尝试一下: