antvis / G6

♾ A Graph Visualization Framework in JavaScript.
https://g6.antv.antgroup.com/
MIT License
11.12k stars 1.32k forks source link

在4.8.21版本中使用combocombind布局,outerLayout使用ForceAtlas2时。偶尔会出现节点位置为NaN的情况。 #6144

Open xyaiwh opened 2 months ago

xyaiwh commented 2 months ago

Describe the bug / 问题描述

在4.8.21版本中使用combocombind布局,outerLayout使用ForceAtlas2时。偶尔会出现节点位置为NaN的情况。 1722916396599

Reproduction link / 重现链接

No response

Steps to Reproduce the Bug or Issue / 重现步骤

在4.8.21版本中使用combocombind布局,outerLayout使用ForceAtlas2时。偶尔会出现节点位置为NaN的情况。 1722993995979

当我随意删除三个节点时,展示又是正常的 1722994068187

layout 的配置如下 1722993550072

G6 Version / G6 版本

4.x

Operating System / 操作系统

Windows

Browser / 浏览器

Chrome

Additional context / 补充说明

偶现的,不是所有情况下都会出现这种情况,想询问一下节点位置计算的时候,什么情况下会计算出NaN。这样我就可以排查一下是不是节点某些数据导致计算出现错误。

Aarebecca commented 2 months ago

如果是偶发问题建议打断点调试,首先检查数据是否有问题,例如是否有重复的 ID等。 你可以先尝试单独使用 force-atlas2 进行布局检查是否 正常

xyaiwh commented 2 months ago

我试验了我们系统内的数据,只要节点数量为34个的时候就会出现这样的情况,但是当节点数量多余或少于34个时,展示就是正常的。 这是34个数量的情况(前端使用splice截取前34个节点): image

这是这个数据正常的情况(不处理): image

xyaiwh commented 2 months ago

单独使用force-atlas2 布局时,如果节点数量为34个依旧会出现这种情况 image

这是节点数据的处理和布局参数的code片段 image image

xyaiwh commented 2 months ago

如果是偶发问题建议打断点调试,首先检查数据是否有问题,例如是否有重复的 ID等。 你可以先尝试单独使用 force-atlas2 进行布局检查是否 正常

数据方面看着是正常的,没有重复的id。当节点数等于34时,单独使用force-atlas2 布局时也会出现这样的情况(实验了公司系统的多组数据均会出现这样的情况)。具体贴图在评论中可以看到

Aarebecca commented 2 months ago

@xyaiwh 你提到的问题确实比较奇怪,为了更具体的定位问题,你可以先按照如下方式排查问题是由 G6 还是布局算法导致的:

新建一个空项目,使用 @antv/layout (版本为 0.3.25),使用 force-atlas2 布局对你的数据布局计算,查看是否有异常

xyaiwh commented 2 months ago

@xyaiwh 你提到的问题确实比较奇怪,为了更具体的定位问题,你可以先按照如下方式排查问题是由 G6 还是布局算法导致的:

新建一个空项目,使用 @antv/layout (版本为 0.3.25),使用 force-atlas2 布局对你的数据布局计算,查看是否有异常

使用@antv/layout(版本为 0.3.25)计算位置之后不会出现问题(但是我发现不仅仅是34,以下别的个数也会导致这种情况,如92,23) image

代码片段如下 image

image