2012-04-26 15 views
8

Sto scrivendo un'app lato client. Voglio usare ClojureScript. Mi piacerebbe generare grafica vettoriale (grafica, grafici, grafici a linee).Clojurescript, JavaScript, SVG, Grafici, Grafica

Cosa devo leggere?

[L'unico requisito è difficile ClojureScript - (1) Mi piace Clojure, e vorrei fare questa intera applicazione in Clojure (2) questo deve essere eseguito nel browser]

Grazie!

risposta

12

Plug sfortunato: è possibile utilizzare C2, una libreria di visualizzazione dei dati Clojure/ClojureScript. (Github here.) L'idea di base è la stessa di D3 --- mappare i dati agli elementi DOM --- ma dal momento che hai la semantica e le strutture dati più potenti di Clojure, diventa molto più compatta di D3/JavaScript.

La documentazione potrebbe usare un po 'di amore, ma se stai facendo i grafici tradizionali in SVG dare un'occhiata al l'asse e spuntare generazione aiutanti:

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

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

Mentre ci isn è ancora una versione ufficiale 0.1.0, l'abbiamo usata a Keming Labs su diversi grandi progetti web e iOS.

Se si dispone di una visualizzazione specifica che non si è sicuri di come avvicinarsi, sentitevi liberi di inviarmi un ping a @lynaghk o di aprire un problema con Github.

+0

Questo è fantastico! –

+0

Dove si trovano i laboratori Keming fisicamente? Nella Bay Area di San Francisco, per caso? –

+0

Siamo nella soleggiata Portland, nell'Oregon, anche se scendo fino alla baia da un mese o due. –

3

Dal regolari librerie JavaScript può essere utilizzato in ClojureScript, Credo che si può usare qualcosa come Raphael o d3 per affrontare la svg. d3 è probabilmente più adatto per quello che ti serve, anche se è un po 'più difficile da usare.

C'è sempre l'alternativa di lavorare direttamente con il DOM, non è necessario alcun tutorial per questo. Il SVG standard è abbastanza ben strutturato e facile da capire.

1

Questa è una vecchia domanda, ma per chiunque la trovi ora, un'altra opzione è quella di utilizzare il strokes library, che non era disponibile quando la domanda è stata posta. Strokes è un wrapper Clojure su d3.js.