2016-11-30 14 views
1

私はdc.jsと組み合わせていくつかのグラフを持つクロスフィルターを使用しています。dc.js x軸がリフレッシュしない

リングチャートでフィルタリングすると、線グラフのデータは消えますが、x軸は変更されずに更新されません。

var tempLineChartt1 = dc.lineChart("#chart-line-temp-t1"); 

    tempLineChartt1 
     .width(768) 
     .height(480) 
     .elasticX(true) 
     .x(d3.time.scale().domain([dateDim.bottom(1)[0].dd,dateDim.top(1)[0].dd])) 
     .elasticX(true) 
     .dimension(dateDim) 
     .group(iotmPerDate) 
     .renderArea(true) 
     .brushOn(false) 
     .renderDataPoints(true) 
     .clipPadding(10) 
     .yAxisLabel("T1") 

答えて

0

私は、これは数回に答えてきたけど、私はクイック検索では、まさにこのへの参照を見つけることができませんでした。

ほとんどの場合、ビンはクロスフィルタグループから自動的に削除されません。だから、dc.jsはXドメインを変更する理由は見当たりません。elasticX(true)は、Xキーのセットが変更されたときに始まり、ここではYの値はゼロにしか落ちませんでした。あなたが動的にこれらの結果をフィルタリングするために、「偽グループ」を使用することができます

:これにより

function remove_empty_bins(source_group) { 
    return { 
     all:function() { 
      return source_group.all().filter(function(d) { 
       return d.value != 0; 
      }); 
     } 
    }; 
} 

var filtered_group = remove_empty_bins(group) // or filter_bins, or whatever 

chart.dimension(dim) 
    .group(filtered_group) 

https://github.com/dc-js/dc.js/wiki/FAQ#fake-groups

を所定の位置に、線グラフが再描画されるたびに、偽のグループは除外しますデータとしてのゼロが読み取られます。折れ線グラフは、ドメインを再計算し、フィットするようにズームします。

+0

多分この質問に答えられましたが、私はこの解決策のために数日間検索しました。あなたのおかげでたくさんのおかげで、これは完璧に動作します! – joshuatree69

関連する問題