2017-12-27 13 views
1

redrawイベントが発生するたびに散布図でy軸の範囲を再計算できるようにする必要があります(true)。dc.js散布図とelasticYの振る舞い

デモのために散布ブラッシングの例を使用しました。以下の属性は、各チャートに追加した:ここ

.yAxisPadding('5%') // Allow the max values to be brushed 
.elasticY(true)  // Allow the chart to recalculate the Y axis range 
jsFiddle

は一例です。

左の散布図をブラッシングしてチャートの中央にあるドットの組み合わせを選択すると、右の散布図にY軸の範囲が再計算されます。しかし、それは正しいとは思われません。それはバグですか、何か不足していますか?

答えて

1

いつもelasticXelasticYと同様に、dc.jsは空であるかどうかにかかわらず、すべてのビンを調べています。

すべてのデータを忠実に表示していると主張できますが、そのデータの一部がゼロになることがあります。非常に優れたアニメーションのトランジションを提供していません散布図joins the data in a naive wayこと

function remove_empty_bins(source_group) { 
     return { 
      all: function() { 
       return source_group.all().filter(function(d) { 
        //return Math.abs(d.value) > 0.00001; // if using floating-point numbers 
        return d.value !== 0; // if integers only 
       }); 
      } 
     }; 
    } 
    chart1 
     .group(remove_empty_bins(group1)) 
    chart2 
     .group(remove_empty_bins(group2)) 

Fork of your fiddle.

注::-)

することは、それらのゼロを削除よくある質問からremove_empty_binsを使用します。私は一般的に有用でないので、.transitionDuration(0)で散布図の遷移をオフにすることをお勧めします。

+0

パーフェクト。説明とコードをありがとう。 –

+0

elasticYに関する関連する質問が見つかりました[BrushY値に基づくElasticY](https://stackoverflow.com/questions/48079293/dc-js-elasticy-range-bound-by-brush-y-values) –