Ich benutze nvd3 um ein einfaches Liniendiagramm mit Datenempfang über eine Ajax Anfrage zu zeichnen. Es funktioniert perfekt mit der ersten Zeichnungsanforderung, aber nicht mit dem Neuzeichnen. Das Diagramm wird neu gezeichnet, indem die gleiche Zeichnungsfunktion aufgerufen wird, jedoch mit unterschiedlichen Daten und unterschiedlichen Max/Min-Werten.nvd3.js chart ajax data redraw - fehlende hovereffect + ehemalige yAxis skalieren
Beim Neuzeichnen des Diagramms mit neuen Daten wird der "Hover-Kreis" nicht angezeigt, während der Tooltip dies tut. Wenn Sie auf die Legende des Diagramms klicken und ein Neuzeichnen erzwingen, wird der Hover erneut angezeigt, aber die Werte von yAxis werden in die Werte des ersten gezeichneten Diagramms geändert.
Bisher gehe ich davon aus, dass beim Neuzeichnen des Diagramms immer noch die alten Max/Min-Werte gelten - allerdings nur bezüglich des "Hover" -Effekts. Das generelle Diagramm sieht bis jetzt auch beim Neuzeichnen gut aus - das Problem steht nur dem Schwebeflug gegenüber und das war's.
Klingt ziemlich verwirrend, aber hoffentlich werden Sie den Punkt bekommen.
Einige Code:
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;}
Siehe meine [Problemumgehung für das Tick-Problem] (http://stackoverflow.com/questions/14543660/nvd3-uneven-ticks-when-updating-data) - im Wesentlichen, das Diagramm neu zeichnen. – nullPainter