利用Javascript框架——D3.js制作力导向关系图普

因公司业务需求,整理制作了一个实用且酷炫力导向关系图。下面是我自己的一个demo。先Po一下成品图(自己做的数据偏少):

图1:
这里写图片描述

1)、引入D3框架,这里引入的版本是v3.0

图2:
这里写图片描述

2)、数据整理(数据结构如下图)

图3:

这里写图片描述

图3:

这里写图片描述

数据解析:数据准备是很重要的一部分。Jstr由两个部分组成:‘nodes’、‘links’,主要数据为‘nodes’,‘links’表示数据之间的联系。‘nodes’部分每条数据由‘name’、‘group’、‘index’组成,可大致理解为按‘group’分组(图一中橘黄色的圆圈为一组、紫色的为一组、蓝色的为一组),‘index’表示此数据的唯一标识。‘links’部分每条数据由‘source’、‘target’组成,‘source’表示源头,‘target’表示指向的目标。如图1中‘中国’指向‘四川’这条线,中国为源头,所以source’为‘nodes’中‘中国’的index即0,target为‘四川’的的index,即3。

3)下面附上代码并做详细讲解

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>D3制作力导向关系图</title>
</head>
<body>
<div class="container" id="main_2"></div>
<script type='text/javascript' src='js/jquery-3.1.1.min.js'></script>
<script src="js/d3.v3.min.js"></script>
<script type="text/javascript">
    var index = 0;
    var width = 1140, height = 1000;
    var color = ["#FF8000", "#9393FF", "#0080FF"];
    var force = d3.layout.force()/*layout将json格式转化为力学图可用的格式*/
            .linkDistance(80)/*指定结点连接线的距离,默认为20*/
            .charge(-600)/*顶点的电荷数。该参数决定是排斥还是吸引,数值越小越互相排斥*/
            .size([width, height]);/*作用域*/
    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值