Попробуйте
for(i=1;i<data[0].length;i++)
{
context.lineTo(data[0][i],data[1][i]);
setTimeout(function(){
context.stroke();},3000*i);
}
Или вы можете изменить его на setInterval
.Это должно работать, но я не проверял это.
var i=0;
var length=data[0].length;
var id = setInterval(function(){
context.lineTo(data[0][i],data[1][i]);
context.stroke();
if(i++===length){clearInterval(id)}
},3000);