G2 icon indicating copy to clipboard operation
G2 copied to clipboard

饼图是否支持多选切片或刷选并获取选中数据

Open C-Echo opened this issue 1 year ago • 1 comments

问题描述

饼图是否支持多选切片或刷选并获取选中数据

重现链接

No response

重现步骤

No response

预期行为

No response

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response

C-Echo avatar Dec 30 '24 05:12 C-Echo

关于饼图是否支持多选切片或刷选并获取选中数据的问题,目前在 antvis/G2 中,饼图的交互功能主要包括单选切片和基本的鼠标悬停效果。多选切片或刷选功能可能需要通过自定义交互来实现。

如果您希望实现多选切片或刷选功能,可以考虑以下方法:

  1. 自定义交互:通过监听图表的事件,手动实现多选逻辑。例如,使用鼠标点击事件来记录选中的切片,并在需要时获取这些选中的数据。

  2. 使用插件或扩展:查看是否有社区提供的插件或扩展可以实现此功能。

  3. 二次开发:如果您熟悉 G2 的源码,可以尝试在其基础上进行二次开发,以实现特定的交互需求。

如果您有进一步的需求或问题,欢迎继续讨论。

🪧 Tips For further assistance, please describe your question in the comments and @petercat-assistant to start a conversation with me.

petercat-assistant[bot] avatar Dec 30 '24 05:12 petercat-assistant[bot]

先开启 brushHighlight 交互

.interaction('brushHighlight', true)

然后监听事件

import { Chart, ELEMENT_CLASS_NAME, dataOf } from '@antv/g2';
  chart.options(...)
  chart.on('brush:end', (e) => {
    const { canvas } = chart.getContext();
    const els = canvas.document.getElementsByClassName(ELEMENT_CLASS_NAME);
    const selectedEls = els.filter((el) => el.__states__.includes('active'));
    const data = selectedEls.map((el) => dataOf(el));
    console.log({ data });
  });

interstellarmt avatar Sep 08 '25 08:09 interstellarmt