2012-05-12 9 views
0

私は時間軸x軸上に棒グラフを描画しています。例えば は、 d3.js - 時間スケール軸上でrectの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の参照をチェックしましたが失敗します。問題はx属性を設定するには確かにある

答えて

0

、それは問題がbar_graph.x()文である表示され、このような何かをやってみてください:

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

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

+0

ありがとう、あなたの例は完璧に見えます。しかし、それは私のために働かなかった、私は問題が異なる時間形式だと思う。私はデフォルトのDate()形式を使用しています... – clerksx

+0

この例では、初期データセットは日付の配列を使用しますが、デフォルトのJavaScript日付に変換されます: 'data [i] .dateVal = new Date (data [i] .DateParts [0]、data [i] .DateParts [1]、data [i] .DateParts [2]); 'おそらく別の問題です – Josh

関連する問題