antvis/G6

使用changeData 重复渲染同一份数据,结果差异很大 #4650

wangxiang666 posted onGitHub

问题描述

使用changeData 重复渲染同一份数据,布局配置一样,force2,但是除了第一次比较标准,后面的结果都差异很大是什么原因呢,具体效果如图 第一次: image

后面: image

重现链接

重现步骤

预期行为

期望每次changeData 同一份数据结果能基本差不多,类似第一次的布局

平台

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

屏幕截图或视频(可选)

No response

补充说明(可选)

No response


今天下午 5-6 点微信直播答疑,可以加群来直播间问问 image

posted by Yanyan-Wang almost 2 years ago

changeData 前后数据是一样的,但是布局不同,是这样吗?力导家族的布局依赖初始位置,可以给 force 配置一个 preset 比如用 concentric,保证初始输入一致

posted by Yanyan-Wang almost 2 years ago

changeData 前后数据是一样的,但是布局不同,是这样吗?力导家族的布局依赖初始位置,可以给 force 配置一个 preset 比如用 concentric,保证初始输入一致

image 如果前置布局也是力导家族呢(因为正常来说图元较多,这样渲染速度较快),每次第一次绘制完成的节点分布是跟第一张图类似比较符合预期,但是除了第一次就都类似第二张图的节点分布了,都挤到了一块

posted by wangxiang666 almost 2 years ago

那这样吧,你在初始渲染/更换数据之前都手动给个初始布局的初始布局,

const concentric = new G6.Layout'concentric'; concentric.init(data); concentric.execute();

然后再把 data 给到 G6

posted by Yanyan-Wang almost 2 years ago

那这样吧,你在初始渲染/更换数据之前都手动给个初始布局的初始布局,

const concentric = new G6.Layout'concentric'; concentric.init(data); concentric.execute();

然后再把 data 给到 G6

可以啦,非常感谢

posted by wangxiang666 almost 2 years ago

Fund this Issue

$0.00
Funded

Pull requests