2016-07-08 4 views
0

私は対話型散布図を作成しようとしています。したがって、私はこのようなドロップダウンを経由して自分のデータに異なる色を適用しています:D3 Transition後にselectAllでフィルタリングします

function color_drop_update (select, checkbox) { 
    if (select == "gender") { 
     holder.selectAll(".dot").style("fill", colorf_gender); 
     holder.selectAll(".legend rect").style("fill", color_gender); 
    } 

私もradioboxesと、このような移行を介したプロットの軸を変更することができます。

function transition(dimension) { 
    if (dimension == "pca") { 
     var xMap = xMap_pca; 
     var yMap = yMap_pca; 

     xScale.domain([d3.min(data, xValue_pca)-1, d3.max(data, xValue_pca)+1]); 
     yScale.domain([d3.min(data, yValue_pca)-1, d3.max(data, yValue_pca)+1]); 
    } 
    else if (dimension == "tsne") { 
     var xMap = xMap_tsne; 
     var yMap = yMap_tsne; 

     xScale.domain([d3.min(data, xValue_tsne)-1, d3.max(data, xValue_tsne)+1]); 
     yScale.domain([d3.min(data, yValue_tsne)-1, d3.max(data, yValue_tsne)+1]); 
    } 

    // Update old 
    circles.attr("class", "update") 
     .transition() 
      .duration(0) 
      .attr("cx", xMap) 
      .attr("cy", yMap); 

    //Update Axis 
    holder.select(".xaxis") 
     .transition() 
      .duration(0) 
     .call(xAxis); 
    holder.select(".yaxis") 
     .transition() 
      .duration(0) 
     .call(yAxis); 

} 

正常に動作しているもの:

  • 異なるフィルタとトランジション前の色情報
  • 異なるフィルタや色情報を移行した後に保持されています。その後、第一のフィルタ動作していないことは何トランジション(意図)

  • を後で軸とフィルタを選択してください:最初の遷移は、フィルタ!

ヒントと助けに本当に感謝しますか?

答えて

1

最後に、私はそれを得た:

それはあなたが再びさえ遷移一つにマーカークラスを言及することを、重要である:

 circles.attr("class", "update") 
     .transition() 
      .duration(0) 
      .attr("cx", xMap) 
      .attr("cy", yMap) 
      .attr("class", "dot"); 
関連する問題