Как работать с визуализацией массивных наборов данных в D3 - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть набор данных с примерно 230 000 строк, и мне трудно обрабатывать данные. Я вырезал более половины информации, и процесс визуализации занимает около 20 минут (создание массива занимает около 20 секунд). Самый большой набор данных, с которым я имел дело до этого (в D3), составлял всего около 210 строк.

У кого-нибудь есть какие-либо предложения, как сделать это немного быстрее?

1 Ответ

0 голосов
/ 13 февраля 2020

Если рендеринг сразу большого количества данных является чрезмерным, я думаю, что было бы лучше разделить данные на куски и асинхронно визуализировать каждый кусок.

Например.

function chunk(arr, chunkSize) {
  var R = [];
  for (var i=0,len=arr.length; i<len; i+=chunkSize)
    R.push(arr.slice(i,i+chunkSize));
  return R;
}
var bigData = [...],
  reasonableNumber = 20;

chunk(bigData, reasonableNumber).forEach((splitted) => {
  requestAnimationFrame(() => drawWithD3(splitted));
});

Надеюсь, это сработает.

...