d3画力导向图
来源:互联网 发布:ember.js 教程 编辑:程序博客网 时间:2024/06/04 18:06
代码如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .axis path,.axis line{ fill:none; stroke:black; shape-rendering:crispEdges; } .axis text{ font-family:sans-serif; font-size:11px; } </style></head><body> <script type="text/javascript" src = "http://d3js.org/d3.v3.min.js" charset = "utf-8"></script> <script type="text/javascript"> var width = 600; var height = 600; var svg = d3.select("body") .append("svg") .style("background-color","yellow") .attr("width",width) .attr("height",height) var nodes = [ { name : "0"}, { name : "1"}, { name : "2"}, { name : "3"}, { name : "4"}, { name : "5"}, { name : "6"}, { name : "7"}, ] var edges = [ { source : 0, target : 1 },{ source : 0, target : 2 },{ source : 0, target : 3 },{ source : 1, target : 4 },{ source : 1, target : 5 },{ source : 1, target : 6 },{ source : 1, target : 7 } ] //转换数据 var force = d3.layout.force() .nodes(nodes) .links(edges) .size([width,height]) .linkDistance(90) .charge(-400); force.start(); console.log(nodes); console.log(edges); // var drag = force.drag() // .on("dragstart",function(d){ // d.fixed = false; // }) // .on("dragend",function(d,i){ // d3.select(this).style("fill",color(i)); // }) // .on("drag",function(d){ // d3.select(this).style("fill","yellow"); // }) //转换数据 var color = d3.scale.category20(); //绘制连线 var lines = svg.selectAll(".forceLine") .data(edges) .enter() .append("line") .attr("class","forceLine") .attr("stroke","black") //绘制节点 var circles = svg.selectAll(".forceCircle") .data(nodes) .enter() .append("circle") .attr("class","forceCircle") .attr("r",20) .style("fill",function(d,i){ return color(i); }) .call(force.drag); //绘制文字 var texts = svg.selectAll(".forceText") .data(nodes) .enter() .append("text") .attr("class","forceText") .attr("x",function(d){ return d.x; }) .attr("y",function(d){ return d.y; }) .attr("dy",".3em") .text(function(d){ return d.name; }) //tick事件的监听器 force.on("tick",function(){ //更新连线的端点坐标 lines.attr("x1",function(d){ return d.source.x; }) lines.attr("y1",function(d){ return d.source.y; }) lines.attr("x2",function(d){ return d.target.x; }) lines.attr("y2",function(d){ return d.target.y; }) //更新节点坐标 circles.attr("cx",function(d){ return d.x; }) circles.attr("cy",function(d){ return d.y; }) //更新文字节点坐标 texts.attr("x",function(d){ return d.x; }) texts.attr("y",function(d){ return d.y; }) }) </script></body></html>
代码运行效果如下图所示:
还能用鼠标拖拽
阅读全文
0 0
- d3画力导向图
- d3 力导向图
- D3学习:力导向图布局
- d3.js之力导向图
- D3 笔记十:力导向图
- D3力导向地图制作
- 【d3.js教程06】force 力导向图
- D3.js实现力导向图(Dray和Zoom)
- D3系列第三弹——绘制力导向图
- D3力导向图及树状布局变换
- 【D3.js数据可视化系列教程】(二十四)--力导向图
- 【D3.js数据可视化系列教程】(三十)--力导向图之带文字
- 【D3.js数据可视化系列教程】(三十一)-- 力导向图之分子式
- 【D3.js数据可视化系列教程】(三十二)-- 力导向图之弧形箭头连线
- 【D3.js数据可视化系列教程】(三十三)-- 力导向图之图片和提示
- 数据可视化 D3.js实现力导向图之二(node带文字说明和提示)
- D3.V3.js数据可视化 -- 力导向图之图片和提示
- 关于D3.js 力导向图V3和V4节点固定
- Tomcat通过ip不能访问,但localhost和127.0.0.1可以访问
- python去除空格
- IEDA Java项目,编译运行,提示“Error:java: 无效的源版本: 1.8”问题
- 安卓学习
- 【WEB开发】:webservice的可应用理解文章
- d3画力导向图
- 不正确地使用 HashMap 引发死循环及元素丢失
- intellij idea 如何一键清除所有断点
- iOS测试之一般流程和注意事项
- Jqgrid 的简单使用
- <class '__main__.'>
- Google机器学习(一) 安装Anaconda以及Scikit-learn等必备库
- Java开发基础回顾
- Python迭代器