[D3. js - 빅 데이터 시각 화 - 지식 그래프 가이드 맵 / 인력 그래프] 데이터 전시

2403 단어 D3.js

 
얼마 전에 빅 데이터 시각 화 에 관 한 프로젝트 를 했 는데 d3. js 를 사 용 했 습 니 다. 빅 데이터 에 대한 전시, d3 는 정말 극치 에 이 르 렀 습 니 다. 말 을 많이 하지 않 고 코드 를 직접 올 렸 습 니 다.가장 간단 한 데이터 전시 부터 매일 조금씩 업데이트 된다.
 



	
	
	vichun-CSDN



	
		let data={
			'nodes':[
				{'food':'   '},
				{'food':'  '},
				{'food':'   '},
				{'food':'  '},
				{'food':'  '},
				{'food':'  '},
				{'food':'  '},
				{'food':'  '}
			],

			'links':[
				{source:0,target:1},
				{source:0,target:2},
				{source:0,target:3},
				{source:0,target:4},
				{source:0,target:5},
				{source:0,target:6},
				{source:0,target:7}
			]
		};
		
		let nodes = data.nodes;
		let links = data.links;
		
		let width = 800;
		let height = 800;
		
		let svg = d3.select('body')
		.append('svg')
		.attr('width',width)
		.attr('height',height);
		
		let force = d3.layout.force()
		.nodes(nodes) //      
		.links(links) //      
		.size([width,height]) //        
		.linkDistance(300) //         
		.distance(280)
		.charge(-1500); //         

		force.start(); //      
		
		
	//	         , d3  
		let color = d3.scale.category20(); //20      20      
		
	//	      
		//	          
		let linksLine = svg.selectAll('line')
		.data(links)
		.enter()
		.append('line')
		.style('stroke','#ccc')
		.style('stroke-width',2);
		
	//	    
		let nodesCic = svg.selectAll('circle')
		.data(nodes)
		.enter()
		.append('circle')
		.attr('r',25)
		.style('fill',function(d,i){
			return color(i); //        ,            
		})
		.call(force.drag); //  drag  ,        
		
	//	       
		let nodesTitle = svg.selectAll('text')
		.data(nodes)
		.enter()
		.append('text')
		.style('fill','#fff')
		.attr("text-anchor", "middle") //            
		// .attr('dx',20) //      x  
		// .attr('dy',5) //      y  
		.text(function(d){
			return d.food;
		});
		
		force.on('tick',tick);
		
		function tick(){
			//	       
			linksLine.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;});
			
		//	      
			nodesCic.attr('cx',function(d){return d.x;})
			.attr('cy',function(d){return d.y});
			
		//	      
			nodesTitle.attr('x',function(d){return d.x})
			.attr('y',function(d){return d.y + 5});
		
		}
		
	



좋은 웹페이지 즐겨찾기