nvd3 を使用して複数折れ線グラフを作成しましたが、いくつかの重要な方法で変更できませんでした。ストレートなd3jsを使って自作したいのですが、 joins で考えるのに苦労しています。
d.key
それぞれに対応するパスを作成する必要がありますd.values
。
私のデータは次のようにnvd3用にフォーマットされています(要約)。
[
{
"key":"brw-a",
"values":[
["2012-07-11T00:00:00", 0.0 ],
["2012-07-11T23:59:59", 0.0 ],
["2012-07-05T06:31:47", 0.0 ],
["2012-07-05T23:59:59", 0.0 ]
]
},
{
"key":"brw-c",
"values":[
["2012-07-11T00:00:00", 0.0 ],
["2012-07-07T00:00:00", 2.0 ],
["2012-07-05T23:59:59", 4.0 ]
]
}
]
each に格納されている配列にアクセスするには、内部ループが必要なようですd.values
。役に立たない大きな塊がどのように現れるかを示す実用的な例があります。d.values
var p = d3.select("body").selectAll("p")
.data(data)
.enter().append("p")
.text(function(d) {return d.key +": " + '[' + d.values + ']'})
私は近くにいるように感じます。それは次のことと関係があります。
.data(data, function(d) { return d.key; })
更新:データを手動でループして、目的の効果を作成することができました。おそらく、結合でこれを行う方法はありませんか? もちろん、素晴らしい nvd3 lib を使用するために保存してください。リンクについては、以下のコメントを参照してください。
var body = d3.select("body")
for (i=0; i < data.length; i++) {
var key = data[i].key
var values = data[i].values
body.append("h3")
.text(key)
for (j=0; j < values.length; j++) {
body.append("p")
.text(values[j][0] + " -- " + values[j][1])
}
}