D3 笔记十:力导向图

本文介绍了D3.js中的力导向图,包括其定义、数据与布局、绘制方法及节点可拖动的实现。力导向图是一种展示节点间复杂关系的算法,通过D3.js可以创建出动态交互的图形。数据布局后,使用line、circle和text元素绘制图形,并通过force.drag()实现节点拖动功能。
摘要由CSDN通过智能技术生成

本文目前来说,是学完极客学院的《D3.js 入门教程》之后的整理出来的精简知识版,仅仅是为了知识整理。后期我会随着学习的深入,在这个基础上,进行维护与更改。

一、力导向图

我们先来了解一下力导向图(Force-Directed Graph)的定义。首先,它是绘图的一种算法。在二维或三维空间里配置节点。节点之间用线连接,称为连线。各连线的长度几乎相等,且尽可能不相交。节点和连线都被施加了力的作用。力的大小是根据节点和连线的相对位置计算的。根据力的作用来计算节点和连线的运动轨迹,并不断降低它们的能量,最终达到一种能量很低的安定状态

力导向图

功能上,力导向图能表示节点之间的多对多的关系

二、数据与布局

力导向图的原生数据由节点(nodes)和连线(edges)的两个数组组成。nodes 代表节点的一些必要信息,而 edges 则表示的是节点之间的连线与否。请看下列实例数据:

var nodes = [{ name: "桂林" }, { name: "广州" }, { name: "厦门" }, { name: "杭州" }];

var edges = [{ source: 0, target: 1 }, { source: 0, target: 2 }, { source: 
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值