nvd3/d3 を使用して単純な折れ線グラフを描画しようとしています。グラフが初めてロードされるときは問題ありません。しかし、新しいデータをロードしてグラフを更新するたびに、「マウスオーバー」中にデータポイントで発生する遷移が失われます。ただし、ツールチップは表示されます。これを修正する方法?.
このjsFiddle demoをご覧ください。
コードを追加する:
//js :
var n = 0;
var data = function (start) {
var line1 = [],
line2 = [];
for (var i = start; i < start + 50; i++) {
line1.push({
x: i,
y: 2 * i
});
line2.push({
x: i,
y: 3 * i
});
}
return [{
values: line1,
key: 'y = 2 * x',
color: '#ff7f0e'
}, {
values: line2,
key: 'y = 3 * x',
color: '#2ca02c'
}];
}
var drawGraph = function (start) {
var chart = nv.models.lineChart();
chart.xAxis.axisLabel('Time (ms)')
.tickFormat(d3.format(',r'));
chart.yAxis.axisLabel('Voltage (v)')
.tickFormat(d3.format('.02f'));
d3.select('#chart svg')
.datum(data(start))
.transition().duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
}
nv.addGraph(drawGraph(n));
$("button").click(function () {
n += 50;
nv.addGraph(drawGraph(n));
});
html ページ:
<div id="chart">
<svg></svg>
</div>
<button>Change Graph</button>