Я использую nvd3 для рисования простой линейной диаграммы с получением данных через запрос ajax. Он отлично работает с первым запросом на отрисовку, но не на перерисовку. Диаграмма перерисовывается, вызывая ту же функцию рисования, но с другими данными + разными максимальными/минимальными значениями.
При перерисовке диаграммы с новыми данными «круг наведения» не появляется, а появляется всплывающая подсказка. Кроме того, при нажатии на легенду диаграммы и принудительной перерисовке снова появляется наведение, но значения оси y изменяются на значения первой нарисованной диаграммы.
До сих пор я предполагаю, что при перерисовке диаграммы все еще сохраняются старые значения max/min, но только в отношении эффекта «зависания». Общий график пока выглядит нормально и на перерисовке - проблема только в ховере и все.
Звучит довольно запутанно, но, надеюсь, вы поняли суть.
Некоторый код:
d3.json(queryurl, function(data2){
nv.addGraph(function(jsonData) {
if(chart){
chart.remove();
}
chart = nv.models.lineChart()
.x(function(d) { return d[0] })
.y(function(d) { return d[1] })
.color(d3.scale.category10().range());
chart.xAxis
.tickFormat(function(d) {
return d3.time.format('%x')(new Date(d))
});
chart.yAxis
.scale()
.tickFormat(d3.format(''));
chart.lines.yDomain([maxmin.max,maxmin.min]);
d3.select('#chart1 #chartsvg')
.datum(data2)
.transition().duration(600)
.call(chart);
nv.utils.windowResize(chart.update);
});
});
return chart;}