html:

<div id="relevanceRuleConfig">

CSS:

.node circle {fill: #fff;stroke: steelblue;stroke-width: 1.5px;
}.node {font: 12px sans-serif;
}.link {fill: none;stroke: #ccc;stroke-width: 1.5px;
}

JS:

//定义布局范围
var treeWidth = width-50;
var treeHeight = height-80;
//定义D3树布局范围
var tree = d3.layout.tree().size([treeHeight, treeWidth-100])//注意D3布局跟svg坐标系无关,size(高,宽).separation(function(a, b) { return (a.parent == b.parent ? 1 : 2); });//设置相隔节点的间距,a、b节点相隔//定义连线生成器
var diagonal = d3.svg.diagonal().projection(function(d) { return [d.y, d.x]; });//设置连线点的变换器//绘制svg图形
var svg = d3.select("#relevanceRuleConfig").append("svg").attr("width", treeWidth).attr("height", treeHeight).append("g").attr("transform", "translate(40,0)");//定义偏移量//加载数据
d3.json($WEB_ROOT_PATH+"/jsproject/dqms/rulemanageconfig/data.json", function(error, root) {var nodes = tree.nodes(root);   //获取所有节点信息var links = tree.links(nodes);   //获取节点的连线信息集合//绘制连线var link = svg.selectAll(".link").data(links).enter().append("path").attr("class", "link").attr("d", diagonal);//绘制节点var node = svg.selectAll(".node").data(nodes).enter().append("g").attr("class", "node").attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; })//添加节点图标node.append("circle").attr("r", 4.5);//添加节点显示文本node.append("text").attr("dx", function(d) { return d.children ? -8 : 8; })//定义文本显示x轴偏移量.attr("dy", 3)//定义文本显示y轴偏移量.style("text-anchor", function(d) { return d.children ? "end" : "start"; })//文字对齐显示.text(function(d) { return d.name; });
});

JSON文件(data.json):

{
"name":"中国",
"children":
[{ "name":"浙江" , "children":[{"name":"杭州" },{"name":"宁波" },{"name":"温州" },{"name":"绍兴" }] },{ "name":"广西" , "children":[{"name":"桂林","children":[{"name":"秀峰区"},{"name":"叠彩区"},{"name":"象山区"},{"name":"七星区","children":[{"name":"哈尔滨"},{"name":"齐齐哈尔"},{"name":"牡丹江"},{"name":"大庆"}] }]},{"name":"南宁"},{"name":"柳州"},{"name":"防城港"}] },{ "name":"黑龙江","children":[{"name":"哈尔滨"},{"name":"齐齐哈尔"},{"name":"牡丹江"},{"name":"大庆"}] },{ "name":"新疆" , "children":[{"name":"乌鲁木齐"},{"name":"克拉玛依"},{"name":"吐鲁番"},{"name":"哈密"}]}
]
}

效果图:

D3.js--Tree(树)相关推荐

  1. html树图制作,d3.js制作树结构图

    一.运行效果 说明:使用鼠标滚轮放大缩小,点解节点可以收缩打开子节点,按住鼠标左键拖动可移动整体图形. 二.实现过程 1.编写html和css结构 .node { ursor: pointer; } ...

  2. 用D3.js画树状图

    做项目遇到一个需求,将具有层级关系的词语用树状图的形式展示它们之间的关系,像这样: 或者是这样: 上面的图片只是样例,跟我下面的代码里面用的数据不同 网上有很多这种数据可视化展示的js控件,我这里选择 ...

  3. d3.js Tree

    一.功能:     1.增加节点     2.删除节点     3.上下移动节点     4.保存     5.画布可放大缩小     6.单击节点选中,双击节点折叠 二.知识点:     1.D3. ...

  4. D3.js树图tree 组织机构分布图(基于vue)

    @[TOC](D3.js树图tree 组织机构分布图(基于vue)) 背景 前段时间接到一个需求,仿照企业查查->企业族谱 使用d3画出企业关系树图.这也是本人第一次接触d3.js,总体来说就是 ...

  5. 基于vue的组织架构树组件_Vue组件基于D3.js布局显示树

    基于vue的组织架构树组件 Vue.D3.tree (Vue.D3.tree) Update documentationVue components to display graphics based ...

  6. d3.js v3版本实现-树状图

    参考的例子:http://bl.ocks.org/robschmuecker/7880033 一.为什么选择d3.js 二.d3.js概述 三:树状图实现 1.创建svg 2.在svg元素里面画一个g ...

  7. 基于D3.js实现分类多标签的Tree型结构可视化

    全文共5270个字,4张图,预计阅读时间25分钟. 关键词: 可视化,D3.js,python,前端,代码 why 今天新来的实习生需要对部分分类文本进行多标签的检测,即根据已构建好的一.二级标签Ex ...

  8. D3.js绘制竖向组织架构图

    d3新手上路,记个笔记(*^_^*) 先上效果图: 主要参考:https://bl.ocks.org/mbostock/3184089 https://github.com/justincy/d3-p ...

  9. 数据可视化利器D3.js教程 API

    汇智网 http://xc.hubwiz.com/course/54fd40cfe564e50d50dcf284 D3.js 入门系列 - 选择元素和绑定数据 https://www.cnblogs. ...

  10. 3、Spark 和 D3.js 分析航班大数据

    实验资源 1998.csv airports.csv 实验环境 VMware Workstation Ubuntu 16.04 spark-2.4.5 scala-2.12.10 实验内容 " ...

最新文章

  1. JS设计模式——3.封装与信息隐藏
  2. 肺部ct重建_肺部CT血管分割及三维重建
  3. 日元兑换——国内兑换需要护照和签证,国外的机场有兑换ATM
  4. python爬虫企业级技术点_Python爬虫必备技术点(二)
  5. 17-chmod命令
  6. SO_REUSEADDR
  7. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
  8. 解决 ubuntu出现的 cd Do-bash: cannot create temp file for here-document: Permission denied问题
  9. 数据结构的简要介绍:堆栈如何工作
  10. 图像处理---《在图片上打印文字 FreeType库》
  11. .net面向对象学习笔记(二)
  12. Android短信页面
  13. Web安全——同源策略理解
  14. 华为鸿蒙HarmonyOS 简介
  15. 使用 awk 处理一个对齐问题
  16. 一个关于视频播放的小项目
  17. ESP32 寻迹模块测试
  18. n核CPU为什么计算速度达不到单核n倍
  19. 一些比赛的题解(共32场)
  20. bogomips 骁龙820_解读|手机CPU综合性能排行:骁龙820吊打一切

热门文章

  1. PROJECT2: 华为云 >> 企业云平台完整架构实例应用分解(第二部MySQL集群)
  2. 楚留香服务器维护3月8,【3月8日】楚留香坐观万象打坐位置一览_打坐修炼地点介绍...
  3. 有关工业设计的几个因素,你知道吗?
  4. VS Code Python 代码智能提示(自动补全)编译环境设置踩坑记录
  5. 支付宝小程序 Serverless 服务架构演进 | mPaaS 线下沙龙 CodeDay#1 分享实录
  6. unity英语学习之美
  7. (一)Open Image Dataset V5概述
  8. 利用科大讯飞语音合成模块SDK实现ROS语音交互
  9. HTTPS-自己生成数字证书
  10. k8s生成https证书的secret