Подтвердить что ты не робот

D3.js vs Raphael.js

Я очарован как d3, так и Рафаэлем. Я понимаю, что Raphael - это , построенный поверх D3 и совместимый с кросс-браузером, но я не уверен, какой из них лучше подходит для каких сценариев. Может ли кто-нибудь пролить свет? Мой непосредственный прецедент потенциально использует временную шкалу SIMILE и интегрирует ее с диаграммой состояний (для которой я намерен использовать d3/Raphael). Спасибо!

4b9b3361

Ответ 1

Рафаэль не построен на D3.

Рафаэль поможет вам нарисовать элементы. D3 более комплексный и поможет вам привязать данные к элементам. Поэтому я бы сказал, что D3 более мощный. Обсуждение этого форума Обсуждает представление временной шкалы SIMILE с использованием D3, они ссылаются на этот проект, который реализует временную шкалу в D3, Итак, на первый взгляд, D3 - ваш ответ.

Однако, учитывая, что, похоже, для D3 не используется виджет, который обрабатывает временную шкалу SIMILE для вас, Raphael или D3 могут быть хорошим выбором. То есть, за исключением того факта, что D3 не работает с предыдущими версиями Internet Explorer, как описано в этой статье. Итак, если вам нужно поддерживать более ранние версии IE, тебе лучше с Рафаэлем.

Ответ 2

D3 гораздо труднее изучить, чем Raphael, но в обоих случаях вам также придется изучить SVG, чтобы иметь возможность создавать лучшие анимации. С другой стороны, обычно для визуализации D3 требуется меньше математики, чем аналогичные примеры обработки или рафаэля, поскольку уже есть много расфасованных макетов.

Я бы сказал, что D3 - лучший выбор по очевидной причине: D3 основан на текущем стеке веб-стандартов (HTML, DOM - даже если вы ненавидите его, вам нужно использовать его, CSS, SVG, даже Canvas) и это библиотека для работы с данными. Будучи структурой данных, D3 также поставляется с:

  • тонны алгоритмов и макетов (силовые макеты, макеты стеков, деревья и т.д.),
  • некоторые основные функции перебора данных (вложенность, крест, группа, накопители - см. следующие примеры: http://bl.ocks.org/phoebebright/raw/3176159/),
  • Выбор стиля jQuery,
  • а также примитивы визуализации (d3.svg поставляется со всем необходимым для простой графики).

В-третьих, d3 не только лучше, чем Raphael и Processing во многих случаях, но также является жизнеспособной заменой для jQuery, underscore.js и других фреймворков. На нем построено множество графических библиотек, поэтому вы всегда можете просто перетащить крутую диаграмму и переписать обертку данных вокруг нее.

С помощью этого интерфейса вы можете найти несколько хороших примеров временной шкалы: http://biovisualize.github.com/d3visualization/#visualizationType=timeline

Ответ 3

Оба являются разными животными.

RaphaelJS упрощает и расширяет функции векторной графики на основе SVG и VML.

D3js просто манипулируйте DOM и полагайтесь на графические стандарты (SVG и Canvas, на диаграммах Bars вы также можете использовать DIV) для рисования. Например, d3.svg.symbol() возвращает содержимое параметра d, чтобы передать его элементу path в SVG, но не рисует сам символ.

Вы можете использовать D3js для управления данными и рисовать его с помощью Рафаэля.

Этот блог объясняет, как объединить D3js + Рафаэль. И проверьте D3 для Raphael.

Ответ 4

Как консультант в государственном секторе, я обнаружил, что обучение Raphael было для меня более выгодным, поскольку многие клиенты используют старые версии браузеров. Мой текущий клиент использует IE7 исключительно, с которым Рафаэль работает отлично, а D3 - нет.

Лично я предпочел бы использовать D3, но профессионально это не реальность моей ситуации.