2017-03-14 4 views
1

私がやっていることの説明:散布図を生成しました。ユーザがクラスタボタンをクリックすると、古い散布図が消去され、新しいクラスタデータが表示されます。 散布図を描画するための初期データは、座標の配列でした。ディマス-関数kmeansクラスタリングパッケージ、(SRC:https://www.npmjs.com/package/dimas-kmeans)とクラスタリング後、クラスタ化されたデータは、3つの異なるアレイに記憶されている(3つの異なるクラスタ)[ヘルプ]:d3.js散布図は3つの異なる配列を通り越します

問題:どのようにこの新しいクラスタ化されたデータを横断することができる(3異なります各クラスターが異なる色を表している散布図をプロットするには? jsfiddleする

リンク:https://jsfiddle.net/data_x/nk2mhhtc/12/

重要コード:(jsfiddleでライン126で)

 .attr("cx", function (d,i) { //d is each array out of 3 arrays 
      console.log(d); 
      return x(d[0]); 
     }) 
     .attr("cy", function (d) {    
      return y(d[1]); 
     }) 
     .style("fill", color)//Different color to each different array out of 3. 3 different color patterns to distinguish 3 different clusters. 

ヒント任意の種類/ヘルプは高く評価され、

は、

答えて

0

をありがとうclustered_datachangeplotはオブジェクトの配列で、初期のdataはCoの配列縦座標...おそらくgetClustersは、正しいデータ構造をパックするためにもっとや​​らなければなりません。

+0

私はgetclustersからのデータ形式を変更し( )をデータ配列のように配列の配列に置き換えます。例えば、私は3つの異なる配列クラスタを持っているのではなく、データ配列の単一の配列を持っています。私はまだこれらの異なる配列を横断する問題があります。更新された質問&jsfiddleをご覧ください:https://jsfiddle.net/data_x/nk2mhhtc/12/ – user1

0

私は何故私は数日以内にすべての質問に答えるのか分かりません。

ソル:私はむしろ、私は次のように異なるクラスタおよび出力色を解析する必要があります)私はgetclusters(から得たデータ形式を変更する必要がありscroll down toパソコンへ転送:

//Create circles 
    var circles1 = svg.selectAll("circle") 
         //.data(cluster_result); 
         .data(clustered_data) 
         .enter() 
         .append('g') 
         .each (function(d,i) { 
          d3.select(this).selectAll("circle") 
           .data(d.data) 
           .enter() 
           .append("circle") 
           .attr("cx", function(d) { return x(d[0])}) 
           .attr("cy", function(d){ return y(d[1])}) 
           .attr("r", 3) 
           .style("fill", color(d.data)); 
         }) 
関連する問題