コーヒースクリプトクラスに次のd3
(キュービズム)コードがあります:
d3.select("view").selectAll(".horizon")
.data( @metrics )
.enter()
.insert("div", ".bottom")
.attr("class", "horizon")
.call( @ctx.horizon() )
そしてすべてがうまく機能します。ただし、「ビュー」をインスタンス化するために、次のデータ構造をクラスに渡したいと思います。
metricGroup =
cpu:
extent: [0,100]
temperature:
extent: [0,80]
power:
scale: d3.scale.ordinal( [0,1,2] ).range( [-2,1,-1] )
extent: [-2,1]
ご覧のとおり、特定のscale
andextent
を各メトリックに関連付けたいと考えています。各メトリックは、上記のコードhorizon
で連鎖する必要がある各オブジェクトへの特定の呼び出しを定義します。d3
.call(
@ctx.horizon()
.scale(@metricGroup.power.scale)
.extent(@metricGroup.power.extent)
)
したがって、「パワー」メトリックの場合、次のようになります
.call(
@ctx.horizon()
.scale(d3.scale.ordinal( [0,1,2] ).range( [-2,1,-1] ))
.extent( [-2,1] )
)
select/enter/call メソッド チェーンの優雅さを保ちながら、必要なカスタマイズを提供するにはどうすればよいでしょうか?