3

さて、私は D3 から始めて、縦棒グラフを作成しようとしています。

何が起こっているのか本当にわかりませんが、いくつかのことが期待どおりに機能していません (おそらく、私はこの問題に慣れていないためです)。

私はラインスケールを使用しており、軸でうまく機能しますが、バーの高さを誤って計算しています.たとえば、より高い値は表示されません(結果の値が低いため)。

d3.max を使用して範囲を決定しました。何が起こっているのか本当にわかりません。

var yScaleLeft = d3.scale.linear()
    .domain([0, d3.max(stats)])
    .range([realHeight, 0]);

.attr("height", function(d) {
    return yScaleLeft(d);
});

コードは次のとおりです: http://jsfiddle.net/aKhhb/ * Scales *// Stats バーを見てください

(バーの x 方向の配置は忘れてください。後でわかりますが、高さを適切に設定したいのです)

どうもありがとう!Y saludos desde Chile :)

4

1 に答える 1

1

問題は、入力範囲と出力範囲がミラーリングされていることです。つまり、最大の入力値が最小の出力値にマップされます。yそれは問題ありませんが、およびheight属性を計算するときはそれを考慮する必要があります。基本的に、両方の計算が逆になっています。

ここでフィドルを修正しました。また、計算された x 位置にマージンとバー幅の半分を追加して、x 軸を修正しました。ああ、計算を行うときは必要ありませんparseInt()。実際に文字列から整数を解析したい場合にのみ必要です。

于 2013-01-30T20:36:43.610 に答える