D3js-introduction-to-svg

提供:Dev Guides
移動先:案内検索

D3.js-SVGの概要

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

SVGの機能

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

  • SVGはベクターベースの画像形式であり、テキストベースです。
  • SVGの構造はHTMLに似ています。
  • SVGは*ドキュメントオブジェクトモデル*として表すことができます。
  • SVGプロパティは属性として指定できます。
  • SVGには、原点(0、0)に対する絶対位置が必要です。
  • SVGは、そのままHTMLドキュメントに含めることができます。

最小限の例

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

  • ステップ1 *-SVG画像を作成し、幅を300ピクセル、高さを300ピクセルに設定します。
<svg width = "300" height = "300">

</svg>

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

  • ステップ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 は終了点を参照します。 スタイル属性は、 stroke および stroke-width スタイルを使用して線の色と太さを設定します。

  • x1 -これは最初の点のx座標です。
  • y1 -これは最初の点のy座標です。
  • x2 -これは、2番目のポイントのx座標です。
  • y2 -これは2番目の点のy座標です。
  • stroke -線の色。
  • stroke-width -線の太さ。
  • ステップ3 *-以下に示すように、HTMLドキュメント「svg_linel」を作成し、上記の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を作成するには、以下の手順に従います。

  • ステップ1 *-以下に示すように、SVGイメージを保持するコンテナを作成します。
<div id = "svgcontainer"></div>
  • ステップ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);

ステップ3 *-同様に、以下に示すように *svg 要素内に line 要素を追加します。

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座標です。
  • -これは長方形の幅を示します。
  • 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> タグで表されます。

<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>

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