0

我正在尝试更新 3 个 svgs (BoxPlots)。在以下代码中,var svg 包含 3 个 svg 的数组,并且_data_已更新为正确的记录数。我遵循BoxPlot Example,但看不到我做错了什么。

$('#Records li a ').click(function() {

    var id =  event.target.id;
    var idparts = id.split("_");
    var numrec =  idparts[1];

    d3.json("./php/connection2.php?numrecs="+numrec, function (error, csv) {
        d3.json("./php/connection2.php?numrecs="+numrec, function (error, csv) {
        var chart = d3.box()
            .whiskers(iqr(1.5))
            .width(width)
            .height(height);
        var numericArray = createdata(csv);
        chart.domain([min, max]);
        var svg = d3.selectAll("svg")
        svg.data(numericArray).call(chart.duration(1000));


    });

    $('#RecordsDropdown').removeClass("open");
    return false;

}); });

我也试过:......

thisdata=numericArray;
            var svg = d3.selectAll("svg");
            svg.data(thisdata);
            svg.call(chart.duration(1000));
            //updatedata(svg);

当它尝试创建新的异常值时出现此错误

Uncaught Error: NotFoundError: DOM Exception 8 
4

1 回答 1

0

我发现如果你删除 box.js 中 ~158 行的插入(“文本”):

//change this:
//outlier.enter().insert("circle", "text")
// to this:
outlier.enter().insert("circle")

这将防止

未捕获的错误:NotFoundError:DOM 异常 8

我必须更改的唯一另一件事是确保当我调用它为它设置动画时,它会将新的异常值附加到我的箱形图的 g 中。否则他们会有点跑偏。

var svg = d3.selectAll(".box" + Attr + sample + " g")
    .data(data);
    svg.call(chart.duration(1000));

我不知道“文本”是干什么用的。

于 2013-08-08T16:23:14.920 回答