2013-07-16 2 views
0

Я пытаюсь обновить 3 svgs (BoxPlots). В следующем коде var svg содержит массив из 3 svg и _data_ был обновлен до правильного количества записей. Я следую за BoxPlot Example, но не вижу, что я делаю неправильно.D3 Обновление Datum Boxplot

$ ('# Записывает Ли а') .click (функция() {

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; 

}); });

Ive также попытался: .....

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

Я получаю эту ошибку, когда он пытается создать новые выбросы

Uncaught Error: NotFoundError: DOM Exception 8 
+0

Не вернулось ли возвращать аргумент d? – nrabinowitz

ответ

0

Я обнаружил, что если вы удалите вкладыш (» текст ") в строке ~ 158 в box.js:

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

Это предотвратит

Uncaught Error: NotFoundError: DOM Exception 8

Единственное, что я должен был изменить, это убедиться, что он добавил новый outlier в g моего окна, когда я назвал его, чтобы оживить его. В противном случае они будут немного.

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

Я не знаю, для чего был «текст».

Смежные вопросы