D3.js-SVGの概要

SVGは Scalable Vector Graphics。SVGは、XMLベースのベクターグラフィック形式です。線、長方形、円、楕円などのさまざまな形状を描画するオプションを提供します。したがって、SVGを使用して視覚化を設計すると、より強力で柔軟性が高まります。

SVGの機能

SVGの顕著な特徴のいくつかは次のとおりです-

  • SVGはベクターベースの画像形式であり、テキストベースです。
  • SVGは構造がHTMLに似ています。
  • SVGは次のように表すことができます Document object model
  • SVGプロパティは属性として指定できます。
  • SVGは、原点(0、0)を基準にした絶対位置を持つ必要があります。
  • SVGは、HTMLドキュメントにそのまま含めることができます。

最小限の例

最小限のSVG画像を作成し、それをHTMLドキュメントに含めましょう。

Step 1 − SVG画像を作成し、幅を300ピクセル、高さを300ピクセルに設定します。

<svg width = "300" height = "300">

</svg>

ここでは、 svgタグはSVG画像を開始し、属性として幅と高さを持ちます。SVG形式のデフォルトの単位はpixel

Step 2 −(100、100)で始まり(200、100)で終わる線を作成し、線に赤い色を設定します。

<line x1 = "100" y1 = "100" x2 = "200" y2 = "200" 
   style = "stroke:rgb(255,0,0);stroke-width:2"/>

ここでは、 line タグは線とその属性を描画します x1, y1 出発点を指し、 x2, y2終点を指します。style属性は、を使用して線の色と太さを設定しますstroke そしてその stroke-width スタイル。

  • x1 −これは最初の点のx座標です。

  • y1 −これは最初の点のy座標です。

  • x2 −これは2番目の点のx座標です。

  • y2 −これは2番目の点のy座標です。

  • stroke −線の色。

  • stroke-width −線の太さ。

Step 3 − HTMLドキュメント「svg_line.html」を作成し、以下に示すように上記のSVGを統合します−

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
      <style>
         body { font-family: Arial; }
      </style>
   </head>

   <body>
      <div id = "svgcontainer">
         <svg width = "300" height = "300">
            <line x1 = "100" y1 = "100" 
               x2 = "200" y2 = "200" style = "stroke:rgb(255,0,0);
               stroke-width:2"/>
         </svg>
      </div>
      <p></p>
      <p></p>
   </body>
</html>

上記のプログラムは次の結果をもたらします。

D3.jsを使用したSVG

D3.jsを使用してSVGを作成するには、以下の手順に従います。

Step 1 −以下のように、SVGイメージを保持するコンテナーを作成します。

<div id = "svgcontainer"></div>

Step 2− select()メソッドを使用してSVGコンテナーを選択し、append()メソッドを使用してSVG要素を挿入します。attr()メソッドとstyle()メソッドを使用して属性とスタイルを追加します。

var width = 300;
var height = 300;
var svg = d3.select("#svgcontainer")
   .append("svg").attr("width", width).attr("height", height);

Step 3 −同様に、 line 内部の要素 svg 以下に示す要素。

svg.append("line")
   .attr("x1", 100)
   .attr("y1", 100)
   .attr("x2", 200) 
   .attr("y2", 200)
   .style("stroke", "rgb(255,0,0)")
   .style("stroke-width", 2);

完全なコードは次のとおりです-

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
      <style>
         body { font-family: Arial; }
      </style>
   </head>

   <body>
      <div id = "svgcontainer">
      </div>
      <script language = "javascript">
         var width = 300;
         var height = 300;
         var svg = d3.select("#svgcontainer")
            .append("svg")
            .attr("width", width)
            .attr("height", height);
         svg.append("line")
            .attr("x1", 100)
            .attr("y1", 100)
            .attr("x2", 200)
            .attr("y2", 200)
            .style("stroke", "rgb(255,0,0)")
            .style("stroke-width", 2);
      </script>
   </body>
</html>

上記のコードは次の結果をもたらします。

長方形要素

長方形はによって表されます <rect> 以下に示すようにタグを付けます。

<rect x = "20" y = "20" width = "300" height = "300"></rect>

長方形の属性は次のとおりです-

  • x −これは長方形の左上隅のx座標です。

  • y −これは長方形の左上隅のy座標です。

  • width −これは長方形の幅を示します。

  • height −これは長方形の高さを示します。

SVGの単純な長方形は、以下で説明するように定義されます。

<svg width = "300" height = "300">
   <rect x = "20" y = "20" width = "300" height = "300" fill = "green"></rect>
</svg>

以下に説明するように、同じ長方形を動的に作成できます。

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div id = "svgcontainer"></div>
      <script>
         var width = 300;
         var height = 300;
         //Create SVG element
         var svg = d3.select("#svgcontainer")
            .append("svg")
            .attr("width", width)
            .attr("height", height);
         //Create and append rectangle element
         svg.append("rect")
            .attr("x", 20)
            .attr("y", 20)
            .attr("width", 200)
            .attr("height", 100)
            .attr("fill", "green");
      </script>
   </body>
</html>

上記のコードは次の結果をもたらします。

サークル要素

円はによって表されます <circle> 以下に説明するようにタグを付けます。

<circle cx = "200" cy = "50" r = "20"/>

円の属性は次のとおりです-

  • cx −これは円の中心のx座標です。

  • cy −これは円の中心のy座標です。

  • r −これは円の半径を示します。

SVGの単純な円を以下に説明します。

<svg width = "300" height = "300">
   <circle cx = "200" cy = "50" r = "20" fill = "green"/>
</svg>

以下に説明するように、同じ円を動的に作成できます。

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div id = "svgcontainer"></div>
      <script>
         var width = 300;
         var height = 300;
         //Create SVG element
         var svg = d3.select("#svgcontainer")
            .append("svg")
            .attr("width", width)
            .attr("height", height);
         //Append circle 
         svg.append("circle")
            .attr("cx", 200)
            .attr("cy", 50)
            .attr("r", 20)
            .attr("fill", "green");
      </script>
   </body>
</html>

上記のコードは次の結果をもたらします。

楕円要素

SVG楕円要素は、 <ellipse> 以下に説明するようにタグを付けます。

<ellipse cx = "200" cy = "50" rx = "100" ry = "50"/>

楕円の属性は次のとおりです-

  • cx −これは楕円の中心のx座標です。

  • cy −これは楕円の中心のy座標です。

  • rx −これは円のx半径です。

  • ry −これは円のy半径です。

SVGの単純な楕円を以下に説明します。

<svg width = "300" height = "300">
   <ellipse cx = "200" cy = "50" rx = "100" ry = "50" fill = "green" />
</svg>

同じ楕円を以下のように動的に作成できます。

<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div id = "svgcontainer"></div>
      <script>
         var width = 300;
         var height = 300;
         var svg = d3.select("#svgcontainer")
            .append("svg")
            .attr("width", width)
            .attr("height", height);
         svg.append("ellipse")
            .attr("cx", 200)
            .attr("cy", 50)
            .attr("rx", 100)
            .attr("ry", 50)
            .attr("fill", "green")
      </script>
   </body>
</html>

上記のコードは次の結果をもたらします。