92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

使用D3js繪制Force-Directed Graph(力導向圖)

2021-6-7    前端達人

Force-directed(力導向)圖形繪制算法通過圖形本身的結構(圖中頂點與邊的拓撲關系)計算出圖形的層次,而不依賴于特定領域的知識。使用力導向算法繪制的平面圖形通常比較美觀,并且圖中各條邊之間的交叉盡可能的少。

本文對使用D3js繪制Foorce-Directed Graph(力導向圖)的過程進行簡要的介紹,以下面的邏輯圖(包含6個節點和5條邊)為例。

import json #nodes為圖的節點集合 nodes = [{'name' : 'nodeA'}, 
         {'name' : 'nodeB'}, 
         {'name' : 'nodeC'}, 
         {'name' : 'nodeD'}, 
         {'name' : 'nodeE'}, 
         {'name' : 'nodeF'}] #links為圖的邊集合,source為起點,target為終點 links = [{'source' : 0 , 'target' : 1}, 
         {'source' : 0 , 'target' : 2}, 
         {'source' : 0 , 'target' : 3}, 
         {'source' : 0 , 'target' : 4}, 
         {'source' : 0 , 'target' : 5}] #graph為邏輯圖,由節點集合和邊集合組成 graph = {'nodes' : nodes , 'links' : links} print json.dumps(graph) 

上例的源碼 force-directed-graph.html 及注釋如下:

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> .link { stroke : #CCC; stroke-width : 2; } .node text { pointer-events : none; font-size : 12px; } svg { overflow : hidden; } </style> <script src="http://libs.useso.com/js/jquery/1.11.1/jquery.min.js"></script> <script src="http://libs.useso.com/js/d3/3.4.8/d3.min.js"></script> <script> var graph = {"nodes": [{"name": "nodeA"}, 
{"name": "nodeB"}, 
{"name": "nodeC"}, 
{"name": "nodeD"}, 
{"name": "nodeE"}, 
{"name": "nodeF"}], "links": [{"source": 0, "target":1}, 
{"source": 0, "target": 2}, 
{"source": 0, "target": 3}, 
{"source": 0, "target": 4}, 
{"source": 0, "target": 5}]}; //返回隨機顏色代碼 function random_color() { var letters = '0123456789ABCDEF'.split(''); var color = '#'; for (var i = 0; i < 6; i++ ) {
        color += letters[Math.round(Math.random() * 15)];
    } return color;
} function draw() { var width = 400; var height = 300; //設置svg寬度和高度 var svg = d3.select("#canvas svg")
    .attr("width", width)
    .attr("height", height); //設置Force-Directed力參數 var force = d3.layout.force()
    .gravity(.05)
    .distance(120)
    .charge(-100)
    .size([width, height]);
  force
    .nodes(graph.nodes)
    .links(graph.links)
    .start(); //選擇邊集合 var link = svg.selectAll(".link")
    .data(graph.links)
    .enter().append("line")
    .attr("class", "link"); //選擇節點集合 var node = svg.selectAll(".node")
    .data(graph.nodes)
    .enter().append("g")
    .attr("class", "node")
    .call(force.drag); //響應鼠標拖拽事件 //節點添加圓形圖案 node.append("svg:circle").attr("r", 10)
    .style("fill", function(){ return random_color();
    })
    .style("stroke", "#FFF").style("stroke-width", 3);
    node.append("text")
      .attr("dx", 12)
      .attr("dy", ".36em")
      .text(function(d) { return d.name }); //綁定tick事件 force.on("tick", function() { link.attr("x1", function(d) { return d.source.x; })
      .attr("y1", function(d) { return d.source.y; })
      .attr("x2", function(d) { return d.target.x; })
      .attr("y2", function(d) { return d.target.y; });
    node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
  });
}
$(function(){ draw();
}); </script> </head> <body> <div id="canvas"> <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="300"></svg> </div> </body> </html> 

 

本文鏈接:http://bookshadow.com/weblog/2014/11/04/d3js-force-directed-graph/
請尊重作者的勞動成果,轉載請注明出處!書影博客保留對文章的所有權利。



藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

截屏2021-05-13 上午11.41.03.png

  藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服


日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
亚洲一区在线| 自拍亚洲一区欧美另类| 欧美亚洲另类激情另类| 亚洲深夜福利网站| 91欧美极品| 国产精品美女久久久久久免费| 久久久蜜桃精品| 制服丝袜亚洲精品中文字幕| av中文字幕在线观看| 99porn视频在线| 欧美视频在线免费看| 欧美www视频在线观看| 国产久卡久卡久卡久卡视频精品| 精品国产一区二区三区成人影院| 成人3d动漫在线观看| 亚洲精品一区三区三区在线观看| 欧美一区二区三区啪啪| 一区二区三区国产精品| 91麻豆国产语对白在线观看| 午夜欧美2019年伦理| 91麻豆国产福利在线观看| 日韩高清免费在线| 国产精品一区二区久久精品爱涩| 欧美激情一二三| 日韩精彩视频| 国产一区免费在线| 国产精品爱啪在线线免费观看| 日韩欧美激情一区二区| 婷婷四月色综合| 2024国产精品视频| 91麻豆精品91久久久久久清纯| 一区二区三区在线高清| 成人ssswww在线播放| 久久久电影免费观看完整版| 国产毛片在线| 色爱区综合激月婷婷| 欧美一级高清大全免费观看| 亚洲一区二区三区美女| 日本不卡影院| 欧美猛男性生活免费| 欧美另类视频在线| 国产乱理伦片a级在线观看| 久久久夜精品| 黄页网站在线| 狠狠88综合久久久久综合网| 丝袜美女在线观看| 天堂av最新在线| 成人久久综合| 中文字幕久久久| 久久av中文字幕| h片在线播放| 亚洲人成亚洲精品| 欧美成人一区在线| 先锋影音国产精品| 国产伦精品一区二区三区高清版| 在线观看日韩高清av| 亚洲激情二区| y111111国产精品久久婷婷| 日韩成人高清| 国产日韩欧美视频在线| 欧美一级一区| 国产精品午夜一区二区欲梦| 伊人性伊人情综合网| 四虎精品永久免费| 日韩精品一二三四| 黄色一区二区在线| 免播放器亚洲| 超碰在线97国产| 中文字幕色av一区二区三区| 精品精品国产三级a∨在线| 国产日产欧美一区| 综合天堂久久久久久久| 华人av在线| 国产精品一久久香蕉国产线看观看| 亚洲精品美女免费| 日韩三级毛片| 午夜精品一区二区在线观看| 亚洲四区在线观看| 国产中文一区| 欧美jizzhd精品欧美巨大免费| 欧美日韩视频免费播放| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美黄色激情| 欧美1区视频| 亚洲午夜精品网| 日本高清在线观看| 伊人精品成人久久综合软件| 国产亚洲第一区| 欧美不卡一二三| 不卡免费追剧大全电视剧网站| 国产女主播视频一区二区| 中文在线播放一区二区| 精品国产91乱高清在线观看| 欧美调教sm| 成人在线激情视频| 国产麻豆一区二区三区在线观看| 日韩欧美一卡二卡| 国产日产精品一区二区三区四区的观看方式| 98精品在线视频| 午夜影院在线观看国产主播| 欧美午夜寂寞影院| 国产成人成网站在线播放青青| 精品久久久久久亚洲| 国产九一精品| 日韩欧美精品综合| h片在线观看下载| 热久久免费国产视频| 欧美v日韩v国产v| 99久久婷婷国产综合精品青牛牛| 亚洲电影在线观看| 91麻豆国产福利在线观看宅福利| 国产综合久久久久久| 国产精品美女久久久久久2018| 欧美日韩国产中文精品字幕自在自线| 羞羞视频在线免费国产| 欧美一区二区三区男人的天堂| 欧美在线视频一区| 亚洲精品一区二三区不卡| 日韩亚洲精品在线| 色就色 综合激情| 日韩欧美中文字幕一区| 在线观看成人黄色| 无遮挡的视频在线观看| 成人xvideos免费视频| 香港久久久电影| 麻豆影院在线| 欧美亚洲国产日本| 不卡免费追剧大全电视剧网站| 亚洲欧洲另类精品久久综合| 美女三级99| 海角国产乱辈乱精品视频| xfplay精品久久| 色婷婷在线播放| 白白色 亚洲乱淫| 色综合久久影院| 51国产成人精品午夜福中文下载| 久久人人爽人人爽人人片av不| 黄色日韩精品| 国产精品久久久久久影视| 1区1区3区4区产品乱码芒果精品| 国产精品久久婷婷六月丁香| 91九色在线看| 久久大香伊蕉在人线观看热2| 亚洲精品ww久久久久久p站| 高潮在线视频| 久久精品亚洲精品国产欧美kt∨| 美女隐私在线观看| 欧美三级中文字幕在线观看| 在线色欧美三级视频| 亚洲一区亚洲二区亚洲三区| 国产网站在线| 日本一区二区在线视频观看| 国产z一区二区三区| 一区二区三区视频网站| 欧美午夜免费电影| 亚洲第一页中文字幕| 欧美久久九九| 日韩视频一区二区| 色乱码一区二区三在线看| 欧美小视频在线| 国产亚洲精品久久久久久| 麻豆极品一区二区三区| 欧美日韩视频免费观看| 亚洲永久在线|