現在、d3を学んでいます(JavaScriptの新機能もあります)、入れ子になったデータを「ロールアップ」値で並べ替えるのに問題があります。ここに私のコード断片である:私は可能性がありますようd3.v4でネストされたデータをソートする
d3.csv("flat_data.csv", function (data) {
var nested_data = d3.nest()
.key(function(d) { return d.Field1; })
.rollup(function(g) {
return d3.sum(g, function(v) {return v.Field2; });
})
.entries(data)
.sort(function(a,b) {return d3.descending(a.values,b.values);});
console.log(nested_data);
は試してみてください、nested_dataは(具体的なエラーがスローされません)頑固にソートされていないです。配列の項目(データ)をロールアップ関数(正しい)によって計算された値でソートすることをお勧めします。 SOに関するいくつかの質問を見てきましたが、少なくとも上記の構文を推奨しています。私は明らかに何かが欠けている - 誰かが助けてくれる?ありがとうございました!
EDIT:
だからAPIリファレンスを相談の上、多分ソート方法は古いのですか? nest.sortValues(Comparator)メソッドがあるように見えますが、コードの正しい構文を理解することができれば、ここではすぐには動作しませんが、正しい方法を見つけることができます私はかかわらず、知っている)おかげで再び
EDIT2:!完全にこのことにより、foxed
!とりわけ有用でないものの中でhttp://bl.ocks.org/phoebebright/raw/3176159/の構文を採用しようとしました。もし誰かがそれを動作させる方法を知っていたら、それは素晴らしいでしょう!おかげ
EDIT3:それだけrolledup機能の場合は1が存在するの葉を、ソート以来
sortValuesは、この場合には不向きです。私は以下の「答え」に従って謎を解いたと思う。ありがとう。
その小さな細部は簡単に見落とされます。それはD3 v3からv4へのマイナーな変更でした。私の[答え](http://stackoverflow.com/a/40878485/4235784)[* "d3軸は、奇妙な動作をする" *](/ q/33284775)を参照してください。 – altocumulus
ありがとう非常にありがとうございます – MathVandal
@altocumulus幸運な星に感謝していると思ったことはありませんか、そのような推測は壮大に複製可能です!まあ、完全な初心者は、非常に多くのオンラインリソースv3を集中的にd3を学ぶことの挑戦を言う必要があります、ええ、報われている:) – MathVandal