0

バーの長さに応じて、グラフをスケーリングするのに少し問題があります。たとえば、jsfiddle では、サイズ 25 のデータ ポイントを超えるバーを描画できません。これを修正する 1 つの方法は、ボディの幅と高さを大きくすることです。しかし、1 つのバーが異常に大きく見えないように、グラフ全体をスケーリングする方がはるかに効率的であると考えていました。

http://jsfiddle.net/NkkDC/

ここで「y」関数をスケーリングする必要があると考えていましたが、方法がわかりませんでした。

bars.on("click", clickEvent)
    .transition().duration(2000).delay(200)
    .attr("y", function(d, i) { return i * 20; })
    .attr("width", x)
    .attr("height", 20);

前もって感謝します :)

4

1 に答える 1

1

xScale の入力ドメインは、新しい値を追加するたびに変わる可能性があるため (新しい最大値を追加できるため)、グラフを再レンダリングするときに xScale を再計算する必要があります。render 関数内で x-scale の宣言を移動すると、うまくいくはずです。

    var xScale = d3.scale.linear()
.domain([0, d3.max(data)])
.range([0, 420]);

http://jsfiddle.net/NkkDC/1/

于 2013-03-27T20:22:44.437 に答える