スコットの答えに追加するには、emで指定したdy(フォントサイズ単位)は、テキストを絶対的なy座標を基準にして垂直に整列させるのに非常に便利です。これはD3 text element referenceで詳しく説明されています。
dy = 0.35emを使用すると、フォントサイズに関係なく縦方向にテキストを中央に配置できます。また、絶対座標で記述された点の周りにテキストの中心を回転させたい場合にも役立ちます。
<style>
text { fill: black; text-anchor: middle; }
line { stroke-width: 1; stroke: lightgray; }
</style>
<script>
dataset = d3.range(50,500,50);
svg = d3.select("body").append("svg");
svg.attr({width:500,height:300});
svg.append("line").attr({x1:0,x2:500,y1:100,y2:100});
svg.append("line").attr({x1:0,x2:500,y1:200,y2:200});
group = svg.selectAll("g")
.data(dataset)
.enter()
.append("g");
// Without the dy=0.35em offset
group.append("text")
.text("My text")
.attr("x",function (d) {return d;})
.attr("y",100)
.attr("transform", function(d, i) {return "rotate("+45*i+","+d+",100)";});
// With the dy=0.35em offset
group.append("text")
.text("My text")
.attr("x",function (d) {return d;})
.attr("y",200)
.attr("dy","0.35em")
.attr("transform", function(d, i) {return "rotate("+45*i+","+d+",200)";});
<script>
あなたは「DY = 0.35em」が含まれない場合は、単語は、テキストの下部の周りに、彼らは回転前にしたところ、以下の180整列した後に回転させます。 "dy = 0.35em"を含めると、テキストの中心の周りに回転されます。
CSSを使用してdyを設定することはできません。
他に誰かがこの問題に遭遇した場合、私はsvg = d3.select( "body")を設定しないかぎり、これを得ることができませんでした。append( "svg");次の行でattrを実行しました。 svg.attr({width:500、height:300});.共有ありがとう! –