X 軸と Y 軸の両方のラベルの作成に成功しました。グラフにタイトルを追加することにも成功しました。私の問題は、グラフの余白を変更すると、ラベルの位置がめちゃくちゃになることです。
グラフの余白を変更する場所のスニペット:
var margin = {top: 60, right: 60, bottom: 60, left:120}
ラベルを作成する場所のスニペット:
//Create Title
svg.append("text")
.attr("x", w / 2 )
.attr("y", 0)
.style("text-anchor", "middle")
.text("Title of Diagram");
//Create X axis label
svg.append("text")
.attr("x", w / 2 )
.attr("y", h + margin.bottom)
.style("text-anchor", "middle")
.text("State");
//Create Y axis label
svg.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 0-margin.left)
.attr("x",0 - (h / 2))
.attr("dy", "1em")
.style("text-anchor", "middle")
.text("Revenue");
JsFiddle:
http://jsfiddle.net/u63T9/
これは、私が喜んで受け入れる別の選択肢
です。基本的に、スケールを利用してベース座標を見つけています。次に、場所に満足するまで、追加または少し取ります。この方法は、実際に余白の変化に対応しています。
//Create title
svg.append("text")
.attr("x", w / 2 )
.attr("y", yScale(d3.max(input, function(d) { return d.CustomerCount; })) - 20 )
.style("text-anchor", "middle")
.text("Title of Graph");
//Create X axis label
svg.append("text")
.attr("x", w / 2 )
.attr("y", yScale(0) + 40 )
.style("text-anchor", "middle")
.text("State");
//Create Y axis label
svg.append("text")
.attr("transform", "rotate(-90)")
.attr("y", xScale(0) - 80 )
.attr("x",0 - (h / 2))
.attr("dy", "1em")
.style("text-anchor", "middle")
.text("Revenue");