d3 parcoordsライブラリを使用しています。平行座標チャートにプロットされたデータを変更してチャートをリロードすると、軸の目盛りが更新されません。
を呼び出してみましたが、 の.autoscale()
前に呼び出すと.render()
効果がなく、 の後に呼び出すと.render()
ポリラインが描画されなくなります。
$("#example").html(""); //to make sure "ghost" axes are removed
parcoords = d3.parcoords()("#example")
.data(parsedData)
.createAxes()
.brushMode("1D-axes")
.reorderable()//;
.detectDimensions()
.dimensions(dimensionObj)
.autoscale() //no visible effect if placed here
.render()
.updateAxes();
これが関連しているかどうかはわかりませんが (問題は同時に発生しましたが)、ディメンションの順序を指定し始めました。これを行うには、軸 ( ) を含む配列を使用する代わりに、番号付きの「インデックス」キーを含むdimensionArray
JS オブジェクトを次のように使用します。dimensionObj
//dimensionArray = ["axis1", "axis2", "axis3", "axis4"]; //orderless array
//Default axes to display with predefined ordering
dimensionObj = {
"axis1": {index:0},
"axis2": {index:1},
"axis3": {index:2},
"axis4": {index:3}
}
説明のために、次のスクリーンショットは、上の画像ではスケールが適切に設定されていることを示していますが、2 番目の (更新された) グラフでは、いくつかの新しいポリラインが 1 番目と 3 番目の軸で 0 になっていますが、スケールは更新されていません。そのため、ラインは範囲外になります。
チャートをリロードするときに軸の目盛りを更新する簡単な方法はありますか? で JS オブジェクトを使用する.dimensions()
と、基になるスケール関数との競合が発生する可能性はありますか?