2016-03-28 8 views
0

データを最初にソートしてから、PFC ID(データをグラフ化する)を持つ複数行のグラフがあります。折れ線グラフ自体はうまくいきますが、私も凡例を動的に作成しています。凡例はまず日付で並べ替えられてからPFC IDで並べ替えられます。むしろ、PFC IDで日付を付けずに伝説自体を並べ替えるだけです。私はチャートを乱すことなくこれを行うことができる方法はありますか?クエリから日付のプライマリソートを削除すると、チャート自体が正しく機能しなくなります。D3データソート順

伝説のためのコードは以下の通りです:

legend.append("rect") 
    .attr("height",10) 
    .attr("width", 25) 
    .attr("class", function(d) { return d.key; }) 
    .attr("x", width + 30) 
    .attr("y", function(d,i) { return height - 495 + (i*25); }) 
    .attr("stroke", function(d) { return color(d.key);}) 
    .attr("fill", function(d) { return color(d.key); }); 

の例では、ここで見つけることができます:fiddleを更新しました

 // nest data 
     var nested_data = d3.nest() 
      .key(function(d) { return dimKey(d); }) 
      .entries(data); 

     // sort on key 
     nested_data.sort(function(a,b){ 
      return a.key.localeCompare(b.key); 
     }); 

https://jsfiddle.net/goodspeedj/5ewLxpre/

答えて

1

はちょうどあなたの巣の呼び出しの後にデータを並べ替えます。 wellIDが一意wellNameにペアリングされていると仮定すると、コメント

FOR

、それはです:

 nested_data.sort(function(a,b){ 
      return a.values[0].wellID - b.values[0].wellID; 
     }); 

更新fiddle two.

+0

これは近いですが、私は実際にIDをソートしたいと思います(プライマリキー)はキーではなく、値の1つです。私は現在D3のドキュメントを読んでネスティングとソートを行っています。 – JamesE

+1

@ JamesE、どのプロパティがIDを表していますか?あなたのデータは 'shortName'(ネストのキー)、' sampleDate'または 'pfcLevel'の3つのプロパティしか持っていません。 – Mark

+0

私の謝罪フィドルは古いデータセットを持っていました。私はそれを更新しました - プロパティはchemIDです。ありがとうございました。 – JamesE

関連する問題