!!!###!!!title=Brush 框选——VisActor/VChart 教程文档!!!###!!!!!!###!!!description=Brush 是 VChart 提供的一款交互组件,该组件可以帮助用户在图表中对数据进行选取,方便用户进一步分析或操作数据。本教程主要讲解 Brush 的相关概念以及组成,关于 Brush 更加详细的配置及示例,详见[配置项文档](../../../option)及[示例](../../../example)页面。!!!###!!!

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 // 选框外数据颜色透明度
  }
};