%PDF- %PDF-
Direktori : /home/opti/workflow/src/public/app-assets/js/scripts/charts/d3/other/ |
Current File : /home/opti/workflow/src/public/app-assets/js/scripts/charts/d3/other/chord-diagram.min.js |
/*! * stack-admin-theme (https://pixinvent.com/bootstrap-admin-template/stack) * Copyright 2018 PIXINVENT * Licensed under the Themeforest Standard Licenses */ $(window).on("load",function(){function groupTicks(d,step){var k=(d.endAngle-d.startAngle)/d.value;return d3.range(0,d.value,step).map(function(value){return{value:value,angle:value*k+d.startAngle}})}var ele=d3.select("#chord-diagram"),width=600,height=600,formatValue=d3.formatPrefix(",.0",1e3),matrix=[[11975,5871,8916,2868],[1951,10048,2060,6171],[8010,16145,8090,8045],[1013,990,940,6907]],color=d3.scale.ordinal().domain(d3.range(4)).range(["#99B898","#FECEA8","#FF847C","#E84A5F"]),container=ele.append("svg"),svg=container,outerRadius=.5*Math.min(width,height)-40,innerRadius=outerRadius-30,chord=d3.chord().padAngle(.05).sortSubgroups(d3.descending),arc=d3.svg.arc().innerRadius(innerRadius).outerRadius(outerRadius),ribbon=d3.ribbon().radius(innerRadius),g=svg.append("g").attr("transform","translate("+width/2+","+height/2+")").datum(chord(matrix)),group=g.append("g").attr("class","groups").selectAll("g").data(function(chords){return chords.groups}).enter().append("g");group.append("path").style("fill",function(d){return color(d.index)}).style("stroke",function(d){return d3.rgb(color(d.index)).darker()}).attr("d",arc);var groupTick=group.selectAll(".group-tick").data(function(d){return groupTicks(d,1e3)}).enter().append("g").attr("class","group-tick").attr("transform",function(d){return"rotate("+(180*d.angle/Math.PI-90)+") translate("+outerRadius+",0)"});groupTick.append("line").attr("x2",6),groupTick.filter(function(d){return d.value%5e3===0}).append("text").attr("x",8).attr("dy",".35em").attr("transform",function(d){return d.angle>Math.PI?"rotate(180) translate(-16)":null}).style("text-anchor",function(d){return d.angle>Math.PI?"end":null}).text(function(d){return formatValue(d.value)}),g.append("g").attr("class","ribbons").selectAll("path").data(function(chords){return chords}).enter().append("path").attr("d",ribbon).style("fill",function(d){return color(d.target.index)}).style("stroke",function(d){return d3.rgb(color(d.target.index)).darker()})});