D3に問題があり、ウィットエンドに到達しています。基本的に、任意の数の線を含む時系列グラフがあり、ソースデータを事前に変更することはできません(ただし、クライアント側で操作することはできます)。
データは次のようにフォーマットされます(任意の数のラベルを使用)。
object = [
{
"_id": "2012-08-01T05:00:00",
"value": {
"label1": 1.1208746110529344,
"label2": 0.00977592175310571
}
},
{
"_id": "2012-08-15T05:00:00",
"value": {
"label1": 0.7218920737863477,
"label2": 0.6250727456677252
},
....
私は次のようなことを試しました:
var vis = d3.select.(element)
.append("svg:svg")
.attr("width", width)
.attr("height", height)
.append("svg:g");
var line = d3.svg.line()
.x(function(data) {return x(new Date(data._id));})
.y(function(data) {return y(data.value);});
vis.append("svg:path")
.attr("d", line(object))
.attr("stroke", "black");
「エラー:問題の解析」と多くの「NaNL3.384615384615385、NaNL6.76923076923077、NaNL10.153846153846155」が表示されるため、yアクセサーを介して正しい値にアクセスできないようです。ただし、次のような方法でラベル値をハードコーディングすると、次のようになります。
.y(function(data) {return y(data.value.label1);});
それは問題なく動作しますが、1行だけです。誰か助けてもらえますか?