d3.js でタイムライン チャートを作成しようとしています。下の画像でわかるように、三角形を y 軸の値と同じ方向に配置することはできません。マイルストーンは、関連する y 軸コンポーネントの中央に配置されます。
yaxis 開始コード フラグメント:
var x = d3.time.scale().rangeRound([0, self.config.width]);
var y = d3.scale.ordinal().rangeRoundBands([self.config.height, 0]);
var xAxis = d3.svg.axis().scale(x).orient("bottom").tickSubdivide(4).tickSize(6, 3, 0);//.ticks(d3.time.months,4)
var yAxis = d3.svg.axis().scale(y).orient("left").tickSize(4);
svg に y 軸を追加:
svg.append("g")
.attr("class", "y axis")
.call(yAxis);
マイルストーンのコード フラグメント:
var abs = svg.selectAll(".milestone")
.data(data)
.enter().append("g");
abs.selectAll("symbol")
.data(function(d) {
return d.milestoneList;
})
.enter().append("svg:path")
.attr("transform", function(d) {
return "translate(" + x(d.deadline) + "," + y(d.name) + ")";
})
.attr("d", d3.svg.symbol().type("triangle-down"));
たとえば、FG55 の y 軸が設定されています。translate(0,423)
ただし、FG55 からのマイルストーンが設定されtranslate(<xValue for each>,376)
ているため、y には 47 ピクセルの違いがあります。
yaxis ラベルと目盛りを適切に配置するにはどうすればよいですか?