d3.js raphael

D3.js contra Raphael.js



(4)

Ambos son diferentes animales.

RaphaelJS simplifica y amplía las funciones para gráficos vectoriales basados ​​en SVG y VML.

D3js solo manipula el DOM y confía en los estándares de gráficos (SVG y Canvas, en gráficos de Bars también puedes usar DIV) para dibujar. Por ejemplo, d3.svg.symbol() devuelve el contenido del parámetro d para pasarlo al elemento path en el SVG, pero no dibuja el símbolo por sí mismo.

Puede usar D3js para manipular los datos y dibujar con Raphael .

Este blog explica cómo combinar D3js + Raphael . Y revisa D3 para la implementación de Raphael también.

Estoy fascinado por d3 y Raphael. Entiendo que Raphael está construido sobre D3 y que es compatible con varios navegadores, pero no estoy seguro de cuál es el más adecuado para qué escenarios. ¿Alguien puede por favor arrojar algo de luz? Mi caso de uso inmediato es potencialmente utilizar la línea de tiempo SIMILE e integrarlo con un diagrama de estado (para el cual pretendo usar d3 / Raphael). ¡Gracias!


Como consultora del sector público, descubrí que aprender a Raphael fue una mejor inversión para mí, ya que muchas veces mis clientes usan versiones anteriores de navegadores. Mi cliente actual usa IE7 exclusivamente con el cual Raphael trabaja perfectamente y D3 no.

Personalmente prefiero usar D3, pero profesionalmente esa no es la realidad de mi situación.


D3 es mucho más difícil de aprender que Raphael, pero en ambos casos, también tendrás que aprender a SVG para poder crear mejores animaciones. Por otro lado, normalmente las visualizaciones D3 necesitan menos matemáticas que los ejemplos similares de Processing o Raphael porque ya hay muchos diseños preempaquetados.

Yo diría que D3 es la mejor opción por una razón obvia: D3 se basa en la pila de estándares web actual (HTML, DOM; incluso si lo odias, necesitas usarlo, CSS, SVG, incluso Canvas), y es una biblioteca para trabajar con datos Al ser un marco de datos, D3 también viene con:

  • toneladas de algoritmos y diseños (diseños de fuerza, diseños de pila, árboles, etc.),
  • algunas funcionalidades básicas de disputa de datos (anidamiento, cruzado, agrupado por grupos acumulativos - vea estos ejemplos: http://bl.ocks.org/phoebebright/raw/3176159/ ),
  • selecciones de estilo jQuery,
  • y también primitivas de visualización (d3.svg viene con todo lo que necesita para gráficos simples).

Tal como está, d3 no solo es mejor que Raphael y Processing en muchos casos, sino que también es un reemplazo viable para jQuery, underscore.js y otros frameworks. Hay muchas bibliotecas de gráficos creadas encima, por lo que siempre puede arrastrar y soltar algunos gráficos interesantes y volver a escribir el contenedor de datos a su alrededor.

Puede encontrar algunos buenos ejemplos de línea de tiempo usando esta interfaz: http://biovisualize.github.com/d3visualization/#visualizationType=timeline


Raphael no está basado en D3.

Raphael te ayudará a dibujar elementos. D3 es más completo y lo ayudará a vincular los datos a los elementos. Entonces diría que D3 es más poderoso. En esta discusión de foro se discute la presentación de una línea de tiempo SIMILE utilizando D3, se refieren a este proyecto que implementa una línea de tiempo en D3. Entonces, a primera vista, D3 es tu respuesta.

Sin embargo, dado que no parece haber un widget para D3 que maneje la línea de tiempo SIMILE para usted, Raphael o D3 podrían ser una buena opción. Es decir, excepto por el hecho de que D3 no funciona bien con las versiones anteriores de Internet Explorer, como se explica en este artículo. Entonces, si necesitas soportar versiones anteriores de IE, estarás mejor con Raphael.