JavaScript is required

节点分组 & 分组背景

带区域背景的节点分组

演示通过单击节点将相关节点分组在一起,创建带有背景区域的可视化节点分组。

带区域背景的节点分组

功能概述

本示例演示如何创建带有背景区域的节点可视化分组。单击节点会自动创建一个包含该节点及其相关节点的组,并通过背景形状进行可视化。

核心特性实现

节点单击时创建分组

const onNodeClick = (nodeObject: RGNode) => {
    createNodeGroup(nodeObject.id);
};

const createNodeGroup = (nodeId: string) => {
    const groupCoreNode = graphInstance.getNodeById(nodeId);
    if (!groupCoreNode) return;
    const relatedNodes = graphInstance.getNodeRelatedNodes(groupCoreNode);
    const groupNodes = [groupCoreNode, ...relatedNodes];
    const groupId = 'my-group-' + groupCoreNode.id;

    setMyNodeGroups(prev => {
        if (prev.some(g => g.groupId === groupId)) return prev;
        const nextGroups = [...prev, { groupId, groupNodes }];
        return nextGroups.length > 3 ? nextGroups.slice(1) : nextGroups;
    });
};

用于背景分组的画布插槽

<RGSlotOnCanvas>
    {myNodeGroups.map(thisGroup => (
        <GroupAreaBackground key={thisGroup.groupId} group={thisGroup} />
    ))}
</RGSlotOnCanvas>

力导向布局配置

const graphOptions: RGOptions = {
    defaultNodeShape: RGNodeShape.circle,
    defaultLineShape: RGLineShape.StandardStraight,
    defaultNodeColor: 'rgb(130,102,246)',
    layout: {
        layoutName: 'force',
        maxLayoutTimes: Number.MAX_SAFE_INTEGER
    }
};

创意使用场景

聚类分析:通过单击节点可视化数据聚类。组显示带有背景高亮的相关数据点。

社交网络分析:单击一个人查看他们的社交圈。背景区域突出显示社区聚类。

知识领域:单击一个概念查看其领域。组显示相关概念和子域。

网络分段:单击一个设备查看其网段。网络组的可视化隔离。

项目团队:单击团队成员查看他们的团队。组显示团队组成和关系。

功能分组:单击一个功能查看相关功能。帮助理解功能依赖关系和模块。

主题聚类:单击文档查看类似文档。相关内容的可视化分组。

地理区域:单击位置查看其区域。背景区域显示地理分组。