2012-04-26 20 views
8

Estoy escribiendo una aplicación del lado del cliente. Quiero usar ClojureScript. Me gustaría generar gráficos vectoriales (gráficos, cuadros, gráficos de líneas).Clojurescript, JavaScript, SVG, Gráficos, Gráficos

¿Qué debo leer?

[El único requisito es difícil ClojureScript - (1) me gusta Clojure, y me gustaría hacer toda esta aplicación en Clojure (2) este tiene que ejecutar en el navegador]

Gracias!

Respuesta

12

Conector Shameless: Puede usar C2, una biblioteca de visualización de datos Clojure/ClojureScript. (Github here.) La idea central es la misma que D3 --- mapeo de datos a elementos DOM --- pero ya que tienes las semánticas y estructuras de datos más poderosas de Clojure, termina siendo mucho más composable que D3/JavaScript.

Los documentos podrían utilizar un poco de amor, pero si usted está haciendo las cartas tradicionales en SVG echar un vistazo al eje y garrapatas generación ayudantes:

https://github.com/lynaghk/c2/blob/master/src/cljx/c2/svg.cljx

https://github.com/lynaghk/c2/blob/master/src/cljx/c2/ticks.cljx

Si bien hay ISN No es un lanzamiento oficial de 0.1.0 hasta ahora, lo hemos usado en Keming Labs en varios proyectos grandes de la web y de iOS.

Si tiene una visualización específica de la que no está seguro de cómo acercarse, no dude en enviarme un ping a @lynaghk o abrir un problema de Github.

+0

¡Esto es asombroso! –

+0

¿Dónde se encuentra físicamente Keming Labs? En el área de la Bahía de San Francisco por casualidad? –

+0

Estamos en la soleada Portland, Oregon, aunque llego a la bahía cada mes o dos. –

3

Como las bibliotecas regulares de Javascript se pueden utilizar en clojurescript, supongo que puede usar algo como Raphael o d3 para ocuparse de la svg. d3 es probablemente más adecuado para lo que necesita, aunque es un poco más difícil de usar.

Siempre existe la alternativa de trabajar directamente con DOM, no necesita tutoriales para eso. El SVG standard está bastante bien estructurado y es fácil de entender.

1

Esta es una vieja pregunta, pero para cualquier persona que la encuentre ahora, otra opción es usar el strokes library, que no estaba disponible cuando se formuló la pregunta. Strokes es un contenedor de Clojure alrededor de d3.js.

Cuestiones relacionadas