2017-11-16 7 views
-1

三角ブロック内にデータ(TEXT)を表示する必要があります。しかし、データ(TEXT)は三角形のブロック内にラップする必要があります。明確に理解するには、下の画像を参照してください。三角内のテキストを囲むSVG

画像は、テキストデータが適切に三角形

 Click this link to see the image ,what image showing is , text data is displaying outside of the every block, that should be properly blended respective blocks of the triangle

var svg = d3.select("#" + instanceData.id).insert("svg") 
    .attr("id", instanceData.id + "svg") 
    .attr("width", w) 
    .attr("height", h) 
    .append("g"); 


var data = series0; 
var pyramid = d3.pyramid() 
    .size([w, h]) 
    .value(function(d) { 
     return d.population; 
    }); 

var line = d3.svg.line() 
    .interpolate('linear-closed') 
    .x(function(d, i) { 
     return d.x; 
    }) 
    .y(function(d, i) { 
     return d.y; 
    }); 

var g = svg.selectAll(".pyramid-group") 
    .data(pyramid(data)) 
    .enter().append("g") 
    .attr("class", "pyramid-group"); 

g.append("path").attr({ 
    "d": function(d) { 

     return line(d.coordinates); 

    }, 
    "fill": function(d) { 
     /* console.log("test "+incr); 
     if(incr==0){ 
     colorCode="rgb(255,0,0)"; 
     }else if(incr==1){ 
     colorCode="rgb(255,255,0)"; 
     }else if(incr==2){ 
     colorCode="rgb(0,128,0)"; 
     } */ 
     incr++; 
     return color(d.region); 

    } 
}); 

g.append("text") 
    .attr({ 
     "y": function(d, i) { 
      if (d.coordinates.length === 4) { 
       return (((d.coordinates[0].y - d.coordinates[1].y)/2) + d.coordinates[1].y) + 5; 
      } else { 
       return (d.coordinates[0].y + d.coordinates[1].y)/2 + 10; 
      } 
     }, 
     "x": function(d, i) { 
      return w/2; 
     } 
    }) 
    .style("text-anchor", "middle") 
    .text(function(d) { 
     return d.region; 
    }); 
+0

とあなたのそれぞれのブロックをブレンドする必要があるすべてのブロックの外側が表示されていることを示しています私たちにあなたのためにこれをコード化してもらいたいですか?あなたの側からの努力なしで? –

+0

私は努力をしていないことを知っています。イメージをレンダリングするコードを書きましたが、私の唯一の関心事はブロック内にデータを表示することです。 – Varadharajan

+0

あなたのコードを入れてください。努力したことを知るにはコードを見なければなりません;単にイメージを置くのではなく)。イメージを手助けできると思いますか? –

答えて

0

使用この

<html> <meta charset="utf-8"> <script src="//d3plus.org/js/d3.js"></script> <script src="//d3plus.org/js/d3plus.js"></script> <style> svg { font-family: "Helvetica", "Arial", sans-serif; height: 425px; margin: 25px; width: 900px; } .type { fill: #888; text-anchor: middle; } .shape { fill: #eee; stroke: #ccc; } </style> <svg> <!-- Text that will use the D3plus default wrapping. --> <text class="type" dy="15px" x="75px">Wrapped</text> <rect class="shape" height="150px" width="150px" y="50px"></rect> <text id="rectWrap" class="wrap" y="50px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> <circle class="shape" r="75px" cx="75px" cy="300px"></circle> <text id="circleWrap" class="wrap" y="225px" x="0px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> <!-- Text that D3plus will resize to fit the available space. --> <text class="type" dy="15px" x="275px">Resized</text> <rect class="shape" height="150px" width="150px" y="50px" x="200px"></rect> <text id="rectResize" class="wrap" y="50px" x="200px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> <circle class="shape" r="75px" cx="275px" cy="300px"></circle> <text id="circleResize" class="wrap" y="225px" x="200px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> <!-- For comparison, how SVG would display the text without D3plus. --> <text class="type" dy="15px" x="475px">Default Behavior</text> <rect class="shape" height="150px" width="150px" y="50px" x="400px"></rect> <text class="wrap" y="50px" x="400px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> <circle class="shape" r="75px" cx="475px" cy="300px"></circle> <text class="wrap" y="225px" x="400px" font-size="12"> Here is a long text string that SVG should wrap by default, but it does not. </text> </svg> <script> // Wrap text in a rectangle. d3plus.textwrap() .container(d3.select("#rectWrap")) .draw(); // Wrap text in a rectangle, and size the text to fit. d3plus.textwrap() .container(d3.select("#rectResize")) .resize(true) .draw(); // Wrap text in a circle. d3plus.textwrap() .container(d3.select("#circleWrap")) .draw(); // Wrap text in a circle, and size the text to fit. d3plus.textwrap() .container(d3.select("#circleResize")) .resize(true) .draw(); </script> 
関連する問題