0

このjsbin http://jsbin.com/ibewux/3/editを作成して、トランジションで奇妙な動作を示しました。

グラフが初期化されると、データが正しく表示されます (下の表を参照)。

ドロップダウン メニューからグラフの種類を変更しようとすると、一部の系列が入れ替わります。これが発生した後、シリーズはもうスワップされません。

updateChartData ボタンをクリックしても同じことが起こります。最初は、表に表示されているデータと比較して系列を入れ替えます。

そのため、初期化後の最初の遷移のみがこの不要なスワップの影響を受けるようです。

これは短いコードであり、これが発生する理由を見つけられるかどうか疑問に思います。

ありがとう

4

1 に答える 1

2

が true の場合isVerticalChart、ドメインで序数スケールを使用していますsvg.pointsNames(これは、形式の文字列の配列のようです"Col " + i):

x = d3.scale.ordinal().domain(svg.pointsNames);

ただし、これらの文字列の代わりに、このスケールでデータム インデックスを使用します。

.attr("x", function(d, i) { return isVerticalChart ? x(i) : x(d.y0 - d.size); })

見ている奇妙な動作を避けるために、ここでドメインからスケールに文字列を渡す必要があると思います。

これまでに見られなかった序数スケールにキーを渡すと、それがドメインに追加されるため、現時点では機能します

他にも問題があるかもしれませんが、うまくいけば、それがあなたに近づくことを願っています.

于 2012-07-31T15:44:46.390 に答える