Brush 框选
Brush 是 VChart 提供的一款交互组件,该组件可以帮助用户在图表中对数据进行选取,方便用户进一步分析或操作数据。本教程主要讲解 Brush 的相关概念以及组成,关于 Brush 更加详细的配置及示例,详见配置项文档及示例页面。
组成
Brush 组件主要有一个框选区域组成,提供了丰富的框选类型、样式以及交互支持,同时也提供了对应的事件(brushChange,详见事件 API)。

框选类型
Brush 提供了 4 种常见的框选类型,用户可以根据实际需求选择合适的类型:
- 'x': 横向选择,仅在 X 轴方向上进行数据选取
- 'y': 纵向选择,仅在 Y 轴方向上进行数据选取
- 'rect': 矩形选框,用户可以在图表中画出矩形框,选取其中的数据
- 'polygon': 任意形状选框,用户可以在图表中自由画出多边形框,选取其中的数据
样式与交互
Brush 支持对选框内外的样式进行设置,如颜色、透明度等。同时也可以实现一些交互效果,例如选中数据的高亮显示。
示例
接下来我们通过一个具体的示例来演示如何在 VChart 中使用 Brush 框选组件。
首先我们需要准备一个散点图表,使用以下代码定义散点图表的 spec:
const spec = {
type: 'scatter',
data: [
{
values: [
{ x: 936196, size: 83431, y: 1371, type: '技术', area: '东北' },
{ x: 1270911, size: 219815, y: 5590, type: '办公用品', area: '中南' }
// ... 更多数据项
]
}
],
xField: 'x',
yField: 'y',
seriesField: 'type',
sizeField: 'size',
size: [10, 25],
shapeField: 'type',
shape: ['circle', 'triangle'],
direction: 'horizontal',
axes: [
{ orient: 'left', range: { min: 0 }, type: 'linear' },
{ orient: 'bottom', label: { visible: true }, type: 'linear' }
]
};
现在,我们要在这个散点图中添加框选功能,只需要在 spec 中加入 brush 配置项,并设置相应参数即可:
spec.brush = {
brushType: 'polygon', // 设置框选类型为任意形状选框
inBrush: {
colorAlpha: 1 // 选框内数据颜色透明度
},
outOfBrush: {
colorAlpha: 0.2 // 选 框外数据颜色透明度
}
};