D3: Как показать большой набор данных

У меня большой набор данных содержит 10 ^ 5 точек данных. И теперь я рассматриваю следующий вопрос, связанный с большим набором данных:

Есть ли эффективный способ визуализации очень большого набора данных? В моем случае у меня есть пользовательский набор, и каждый пользователь имеет 10 ^ 3 элемента. Всего 10 ^ 5 предметов. Я хочу показывать все элементы для каждого пользователя за раз, чтобы обеспечить быстрое сравнение между пользователями. Некоторые органы предлагают использовать список, но я не думаю, что список является единственным выбором при работе с этим большим набором данных.

Примечание

Я хочу показывать все элементы для каждого пользователя за раз.

Это означает, что я хочу показать все точки данных, когда нажимаю на пользователя, и когда я нажимаю на два использования, я могу сравнить разницу между ними.

Ответы

Ответ 1

Проблема заключается не в их рендеринге. Вы можете переключиться на холст или webgl для части рендеринга. Вы можете найти несколько примеров использования canvas и X3DOM с привязкой данных D3. Но он будет медленным из-за количества объектов DOM, поэтому лучше оставить их разделенными, как в этом примере параллельных координат. В этом примере также имеется прогрессивный рендеринг для загрузки и отображения всех элементов данных.

Сохранение их в памяти и управление ими на стороне клиента тоже не проблема. D3 часто используется с Crossfilter для быстрого управления данными "миллионов или более записей".

10 ^ 5 точек данных - это лишь немногое количество точек для интерактивного рендеринга SVG. Но слишком много точек данных в визуализации часто являются намеком на то, что у вас неправильный уровень абстракции или неправильная стратегия построения. Много точек, вероятно, перекрываются или визуально сливаются. Итак, почему бы не заполнить эти фигуры, например, с помощью тепловой карты (цветовая шкала для количества точек перекрытия), биннинга (гексбина, гистограммы) или суммирования набора данных?

Если вам нужен обзор и сравнение наборов данных, вам, вероятно, потребуется абстракция, например, некоторые статистические данные, обобщающие ваш набор данных, а затем см. детальную информацию по запросу (семантическое масштабирование, фокус + контекст, развертка).