1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title>D3.js サンプル</title> <link rel= "stylesheet" href= "css/main.css" > <style> svg { border: 1px solid black; } </style> </head> <body> <h1>D3.jsサンプル</h1> <div id= "myGraph" ></div> <script src= "js/sample.js" ></script> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | var list = [ { value : 50 }, { value : 5 }, { value : 35 }, { value : 20 } ]; // 鶏頭図の1つのピースの割り当て角度を計算する for ( var i=0; i<list.length; i++){ list[i].startAngle = (360/list.length)*i * Math.PI / 180; list[i].endAngle = (360/list.length)*(i+1) * Math.PI / 180; } var svgWidth = 320; // SVG領域の横幅 var svgHeight = 240; // SVG領域の縦幅 // Colorは標準で用意されているのを使用 var color = d3.scale.category10(); // SVGの表示領域を生成 var svg = d3.select( "#myGraph" ).append( "svg" ) .attr( "width" , svgWidth).attr( "height" , svgHeight) // 鶏頭図の円のサイズを指定 var arc = d3.svg.arc().innerRadius(50) .outerRadius( function (d){ return 60 + d.value; }) // 半径をデータによって変える // 鶏頭図を描画 svg.selectAll( "path" ) .data(list) .enter() .append( "path" ) // 円弧はパスで指定する .attr( "d" , arc) // 円弧を設定 .attr( "fill" , function (d, i){ return color(i); // 塗りを設定 }) .attr( "stroke" , "white" ) // 円グラフの区切り線を白色にする .attr( "transform" , "translate(" +svgWidth/2+ ", " +svgHeight/2+ ")" ) // 円グラフをSVG領域の中心にする |