0

タイムスケールのx軸に棒グラフを描いています。例えば、

var x = d3.time.scale()
    .domain([minDate, maxDate])
    .range([0, width]);

chart.selectAll(".bar")
    .data(data)
  .enter().append("rect")
    .attr("x", bar_graph.x())
    .attr("y", d.value)
    .attr("width", 10);

四角形の左隅は割り当てられた x ポイントから始まりますが、x ポイントを四角形の中心に割り当てたいと考えています。

タイム スケールなので、単純な減算 x-5 (幅が 10px であると仮定) は機能しませんでした。invert() を試し、svg 参照もチェックしましたが、失敗しました。

4

1 に答える 1

0

問題は確かに x 属性の設定にあります。問題は bar_graph.x() ステートメントにあるようです。次のようなことを試してください。

.attr("x", function(d) {return x(d.dateVal)-barwidth/2;})

ここで完全な実装を参照してください: http://jsfiddle.net/qAHC2/4/

于 2012-05-13T04:12:05.847 に答える