2014-09-11 1 views
0

У меня есть линейная диаграмма с переходами, в которой я добавил подсказки. Это отлично работает для первого отдела, но как только я меняю отделы в раскрывающемся меню, часть графика разброса диаграммы не перерисовывается (строка обновляется по мере необходимости). Вероятно, мне не хватает чего-то фундаментального, но когда я посмотрел примеры, я думаю, что у меня есть правильная идея. Кто-нибудь видит, что не так с моим кодом?d3.js рассеянная диаграмма не перерисовывается при переходе

Обновление - удаленный код целиком. Когда я запускаю это в консоли, я получаю желаемое изменение. Но это не работает в моей функции обновления. И что у меня трудное время понимание :)

focus.selectAll("circle") 
.data(dataFilter) 
    .attr("fill","blue") 
    .attr("cx", function(d) { return x(d.datum); })  
    .attr("cy", function(d) { return y(d.Kvot); }); 

ответ

1

Наконец-то он получил - когда я ввел свою собственную функцию обновления и назвал ее после перехода, она работает. Кто-нибудь может объяснить, почему я не могу поместить его в другую функцию? Я думаю, что это связано с переходом, но не знаю.

function update_circles() { 
focus.selectAll("circle") 
    .data(dataFilter) 
    .attr("cx", function(d) { return x(d.datum); })  
    .attr("cy", function(d) { return y(d.Kvot); }); 
}; 
0

Вы забыли использовать transition метод:

// Make the changes 
focus.select("#Main").transition().duration(750) 
    .attr("transform", "translate(" + (width+3) + "," + y(yMain) + ")") 
    .text(sec); 

Подробнее о transitions в официальной документации. С уважением,

+0

добавить его раньше, так что часть работ (вар фокус = d3.select («тело») переход();). Это последняя часть обновления-функции, которая не работает, которая занимается точки. – ErrantBard

+0

Я думаю, что в части с точками также отсутствует метод «переход()». –

+0

Хмм, я пытался добавить его, но он все равно дает мне Uncaught TypeError: undefined не является функцией – ErrantBard