D3.js--Tree(树)
来源:互联网 发布:网络调查赚钱 编辑:程序博客网 时间:2024/06/11 00:16
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":"哈密"}]}]}
效果图:
0 0
- D3.js--Tree(树)
- d3.js tree
- D3.js--动态树
- D3.js学习笔记十五:D3.js树图(Tree)展开和折叠
- D3 .JS
- d3 js
- d3.js
- d3.js
- D3.js
- d3.js
- d3.js
- 使用d3.js 绘制交互树
- 【D3.js】D3.js入门感悟、学习指南
- D3.js Drag and Drop, Zoomable, Panning, Collapsible Tree with auto-sizing
- D3.js常用方法
- d3.js读书笔记-1
- d3.js读书笔记-2
- d3.js小例子
- 移动端的头部标签和 meta
- Python实现批处理
- WEB程序员需要掌握的十大MySQL优化技巧
- Objective-C学习日志1
- uva839解题报告
- D3.js--Tree(树)
- 将VC++项目配置为64位平台
- seo
- hadoopwordcount代码分析
- 重庆大学软件学院2013级操作系统实验三:线程同步
- unity xml加密解密源码
- 转载For语句讲解2
- jQuery源码分析17--回调函数
- 关于不再使用的Java对象手工指null是否有意义