2

複数行グラフで奇妙な問題が発生しています。グラフは、「ライブ」データをシミュレートするために新しい行が 5 秒間隔で追加される mysql データベースからのデータを示しています。データがデータベースから再取得されると、グラフは 5 秒間隔で更新されます。

「ストリーミング」が停止して開始します。更新されたデータが取り込まれるたびに、次の 3 つのエラーが発生します。

 Uncaught SyntaxError: Unexpected token < 
 d3_json 
 respond

データは、次のように各パス/ラインに適用されます。

 var parameter = svg.selectAll(".parameter")
    .data(data, function(d) { return d.key; })
    .enter().append("g")
    .attr("class", "parameter");

 parameter.append("path")
    .attr("class", "line")
    .attr("d", function(d) { return line(d.values); })
    .style("stroke", function(d) { return color(d.key); });

..その後、更新されたデータが 5 秒間隔で読み込まれ、それに応じてグラフが更新および遷移されます。

 d3.json("LiveData.php", function(error, data) 
 {      
    color.domain(d3.keys(data[0]).filter(function(key) { return key ==  "testSource_id"; }));
    data = data.map( function (d) { 
    d.testSource_id = +d.testSource_id; 
    d.dateTimeTaken = parseDate(d.dateTimeTaken);
    d.reading = +d.reading;
    d.parameterType = d.parameterType;
    d.parameter_id = +d.parameter_id;
    return d;
 });

data = d3.nest().key(function(d) { return d.testSource_id; }).entries(data);

x.domain([d3.min(data, function(d) { return d3.min(d.values, function (d) { return  d.dateTimeTaken; }); }),
d3.max(data, function(d) { return d3.max(d.values, function (d) { return d.dateTimeTaken; }); })]);
y.domain([d3.min(data, function(d) { return d3.min(d.values, function (d) { return d.reading; }); }),
d3.max(data, function(d) { return d3.max(d.values, function (d) { return d.reading; });})]);

var newparameters = svg.selectAll("g.parameter")
     .data(data);

newparameters
     .select( "path.line" )
     .transition() 
     .ease("linear")
     .duration(750) 
     .attr( "d", function(d) { return line(d.values); })

svg.select(".x.axis")
    .transition()
    .duration(750)
    .ease("linear")
    .call(xAxis);

svg.select(".y.axis")
    .transition()
    .duration(750)
    .ease("linear")
    .call(yAxis); 

これがパス/ラインを移行している方法が原因なのか、それともデータベースからデータを取得する方法に関係があるのか​​ わかりません。誰でも助けることができますか?

4

1 に答える 1

1

この問題は、渡されたURLにアクセスして返されるデータがd3.json有効なJSONではない場合に発生します。LiveData.phpあなたの場合、 JSONではなくHTMLを返していると思います。また、一般的な404またはその他のエラーページである可能性もあります。

于 2013-03-18T12:58:43.587 に答える