我正在使用nvd3通过ajax请求接收数据并绘制一条简单的折线图。第一次绘图请求时它运行得非常完美,但是重新绘制时就不行了。调用相同的绘图函数,但使用不同的数据和最大/最小值进行重绘。
当使用新数据重新绘制图表时,“悬停圆形”不会出现,但工具提示会出现。此外,当单击图表的图例并强制重新绘制时,悬停又会出现,但y轴的值会更改为第一个绘制图表的值。
到目前为止,我认为在重新绘制图表时,它仍然保留着旧的最大/最小值,但仅涉及“悬停”效果。总体而言,即使在重新绘制时,整个图表看起来还是很好的-问题只是面对悬停效果。
听起来很混乱,但希望你能理解。
下面是一些代码:
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;}