D3.jsãå§ããåã« ~SVGã®åºç¤
D3.jsã¨ãã¼ã¿ãã¸ã¥ã¢ã©ã¤ã¼ã¼ã·ã§ã³
ãããã°ãã¼ã¿ããããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããã¨ãã£ãè¨èã«ç¶ããããã¼ã¿ãã¸ã¥ã¢ã©ã¤ã¼ã¼ã·ã§ã³ãããã¼ã¯ã¼ãã¨ãã¦æ³¨ç®ããã¦ãã¦ãã¾ããã
ãã¼ã¿ãè¦è¦åãããã¼ã«ã¯æ¬å½ã«ããããããã¾ãããå人çã«ä½¿ããããªã¼ã¨æã£ã¦ããã®ããD3.jsã§ãã D3.js
ãã©ã¦ã¶ã§åãã®ã§ãã©ãããã©ã¼ã ãé¸ã°ãªããããã ã®ç»åã«ã¯ã§ããªãã¤ã³ã¿ã©ã¯ãã£ããªè¡¨ç¾ãã¢ããã§ããæãããããã¼ï¼ãã¨ãããããªãµã³ãã«ã³ã¼ããããããããã®ã§ãããD3.jsã使ãã«ã¯ãSVGã®ç¥èãå¿ è¦ã§ããD3.jsã®æ¥æ¬èªæ¸ç±ãæè¿çºå£²ããã¾ããããHTMLãCSSã®åºæ¬çãªé¨åãã解説ãã¦ããã®ã§ãéã¨ã³ã¸ãã¢ã§ããæåããèªã¿é²ãã¦ããã°D3.jsã使ããããã«ãªãã®ã§ã¯ã¨æãã¾ããâââ
ã¤ã³ã¿ã©ã¯ãã£ãã»ãã¼ã¿ãã¸ã¥ã¢ã©ã¤ã¼ã¼ã·ã§ã³ âD3.jsã«ãããã¼ã¿ã®å¯è¦å
SVGã¨canvas
SVGã¯Scalable Vector Graphicsã®ç¥ãHTMLè¦ç´ ã®ã²ã¨ã¤ã§ããããã¯ã¿ã¼ã°ã©ãã£ãã¯ã§å³å½¢ã表ç¾ãã¾ããããcanvasã¨æ¯è¼ããã¾ãããéããè°è«ããã¨é·ããªãã®ã§ä»¥ä¸ã®URLãªã©ãåèã«ã http://msdn.microsoft.com/ja-jp/library/ie/gg193983(v=vs.85).aspx
ãã¦ããµãã¤ã®åãæãã¦ã¿ã¾ãããä¸ã®åãSVGãä¸ã®åãcanvasã§ãã ç»åãæ¡å¤§ãã¦ã¿ãã¨ãã¯ã¿ã¼ãã©ã¹ã¿ã¼ã®éããããããããã¨æãã¾ãã
<svg width="50" height="50"> <circle cx="25" cy="25" r="22" fill="green" stroke="gray" stroke-width="2"/> </svg> <canvas id="canvasCircle" width="50" height="50"></canvas> <script type="text/javascript"> (function() { var canvas = document.getElementById("canvasCircle"); var c = canvas.getContext("2d"); c.beginPath(); c.arc(25, 25, 22, 0, 2 * 3.14, false); c.fillStyle = "green"; c.fill(); c.lineWidth = 2; c.strokeStyle = "gray"; c.stroke(); })() </script>
SVGã®åºç¤
ãã¦ããD3.jsã«ãããã¼ã¿ã®å¯è¦åãã®SVGãã¥ã¼ããªã¢ã«ã試ãã¦ã¿ã¾ãã
rect
<svg width="500" height="50"> <rect x="0" y="0" width="300" height="50" fill="green"/> </svg>
circle
<svg width="500" height="50"> <circle cx="100" cy="25" r="25" fill="yellow"/> </svg>
ellipse
<svg width="500" height="50"> <ellipse cx="100" cy="25" rx="100" ry="25" fill="red"/> </svg>
line
<svg width="500" height="50"> <line x1="0" y1="0" x2="500" y2="50" stroke="gray"/> </svg>
text
<svg width="500" height="50"> <text x="150" y="25">ã¯ãã¼ãã¼ãã©ï¼ï¼</text> </svg>
è¤éãªãã¸ã¥ã¢ã©ã¤ã¼ã¼ã·ã§ã³ã«ã¯ã¾ã ã¾ã é ãã§ãããé·æ¹å½¢ãåãæããã¨ãã§ãã¾ãã 以ä¸ã®ããã«javascriptã§å³å½¢ã®çæãå¤å½¢ãè¡ããã¨ãã§ãã¾ããâââ
ã¨ã¯ãããæ£ã°ã©ããæãã ããªãExcelã§ååã§ããã D3.jsã®ä½¿ãã©ããã¨ãã¦ã¯ãåã£ããã¶ã¤ã³ã«ãããã¨ããã¤ã³ã¿ã©ã¯ãã£ããªã°ã©ããä½ãããã¨ãã ã¾ããAPIãããã¦jsonãã¼ã¿ã¨ããDBããåå¾ãããã¼ã¿ãªã©ãWebã¨ã®è¦ªåæ§ãé«ãç¶æ³ã§ã®ç¸æ§ãè¯ãããã§ããã
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script> <svg id="d3js"></svg> <script type="text/javascript"> var dataset = [ 5, 10, 15, 20, 25 ]; var width = 50; var height = 150; var svg = d3.select("#d3js"); svg.selectAll("rect") .data(dataset) .enter() .append("rect") .attr("width", width) .attr("height", function(d) { return d*5 }) .attr("x", function(d, i) { return i*(width+5)+5 }) .attr("y", function(d) { return height-d*5 }) .attr("fill", "yellow") .attr("stroke", "orange") .attr("stroke-width", "3"); </script>