2016-09-15 3 views
2

私はDC.JS散布図を使用してユーザーが興味のある点を選択できるようにしています。弾性軸を使用する場合は、最高値点を選択することはできません。 DC.JSの例(https://dc-js.github.io/dc.js/examples/scatter-brushing.html)を見てください。左または右のプロットで最高点を選択することはできません。ブラシを使用してDC.JS散布図の最高点を選択する方法

いくつかのケースでは、最高点または最低点は、私たちが気にする異常値であるため、人々が選択できる必要があります。弾性軸を無効にして、最大値より高い範囲を指定した場合は、その点を選択することができます。

現在の最小/最大に基づいて軸ドメインを設定し、それを少し拡大すること以外の解決策がありますか?これは、最小値= 0のときには醜いことがあり、ドメインに小さな負の数を含める必要があります。私はこの問題に直面したときに--Nico

+0

パディングが、助ける必要がありますが、それは同じように両側に適用されます関連の問題:。。。https://github.com/dc -js/dc.js/issues/1203 – Gordon

答えて

2

は常に、私は手動で5%のYドメインを高めます。例えば :

var balanceDomain = d3.scale.linear().domain([0, s.balanceDimension.top(1)[0].balance + (s.balanceDimension.top(1)[0].balance*0.05)]); 

s.amountOverallScore 
    .width(400) 
    .height(400) 
    .x(someDomain) 
    .y(balanceDomain) 
    ... 

は多分これが最善の解決策ではありませんが、いつも私のために働きます。 。 は=(それが役に立てば幸い

+0

こんにちは、ロジャー、提案をありがとう。よく働く。私は答えとしてマークします。 – nico

1

私のアプリケーションでは値が常に陽性であったと私は正しい動作を取得するために、次を使用:

// using reductio on the all_grp to get easy access to filtered min,max,avg,etc. 
totalTimeMinValue = all_grp.top(1)[0].value.min; 
totalTimeMaxValue = all_grp.top(1)[0].value.max;  

// now use it to scale the charts we want 
detail1_chart.y(d3.scale.linear().domain([totalTimeMinValue-1, totalTimeMaxValue+1])); 
detail3_chart.y(d3.scale.linear().domain([totalTimeMinValue-1, totalTimeMaxValue+1])); 

これは、シンクの両方のチャートを保持し、追加の利点は、その私のむしろでした。大ドット(symbolsize = 15)はもはやクリッピングされているあなたがほのめかすよう

おかげでロジャー

関連する問題