私はクライアントサイドアプリを書いています。ClojureScriptを使用したい。ベクターグラフィック(グラフィック、チャート、線グラフ)を生成したいのですが。
何を読むべきですか?
[唯一の難しい要件はClojureScriptです-(1)Clojureが好きで、このアプリ全体をClojureで実行したいと思います(2)これはブラウザーで実行する必要があります]
ありがとう!
私はクライアントサイドアプリを書いています。ClojureScriptを使用したい。ベクターグラフィック(グラフィック、チャート、線グラフ)を生成したいのですが。
何を読むべきですか?
[唯一の難しい要件はClojureScriptです-(1)Clojureが好きで、このアプリ全体をClojureで実行したいと思います(2)これはブラウザーで実行する必要があります]
ありがとう!
恥知らずなプラグイン:Clojure/ClojureScriptデータ視覚化ライブラリであるC2を使用できます。(ここではGithubです。)コアアイデアはD3と同じです---データをDOM要素にマッピングします---しかし、Clojureのより強力なセマンティクスとデータ構造があるため、D3/JavaScriptよりもはるかに構成可能になります。
ドキュメントはある程度の愛情を使用することができますが、SVGで従来のチャートを作成している場合は、軸とティック生成ヘルパーを見てください。
https://github.com/lynaghk/c2/blob/master/src/cljx/c2/svg.cljx
https://github.com/lynaghk/c2/blob/master/src/cljx/c2/ticks.cljx
公式の0.1.0リリースはまだありませんが、KemingLabsのいくつかの大規模なWebおよびiOSプロジェクトで使用しています。
アプローチ方法がわからない特定の視覚化がある場合は、@ lynaghkにpingを送信するか、Githubの問題を開いてください。
通常のjavascriptライブラリはclojurescriptで使用できるので、 Raphaelやd3のようなものを使用してsvgを処理できると思います。d3は、使用するのが少し難しいですが、おそらく必要なものに適しています。
DOMを直接操作する代わりの方法は常にあり、そのためのチュートリアルは必要ありません。SVG標準は非常によく構成されており、理解しやすいものです。
Grammar of Graphics(Rの人気のあるggplot2ライブラリの背後にある力)のアイデアに基づいて設計されたVega-Lite&Vegaをチェックすることをお勧めします。GGの中心的な考え方は、データの視覚化が、データのプロパティがdatavizの美学にどのようにマッピングされるかを宣言的に説明するものとして指定されることです。Vega-LiteとVegaは、対話の文法を提供することでさらに一歩進んで、インタラクティブなデータの視覚化と洗練されたエクスプローラービューの構築を可能にします。さらに、Vega-LiteとVegaの仕様が純粋なデータ(JSON)として記述されているという点で、GGの宣言型の性質に前向きであり、Clojureの世界のデータ駆動型の哲学と非常に一致しています。さまざまな言語などとのシームレスな相互運用性のための方法。
Vega-Liteは、多かれ少なかれ、非常に質素な仕様に基づいて高いレバレッジと自動化を提供することに焦点を当てた、より高度な日常のデータサイエンスツールです。Vegaにコンパイルされます。これは、Vega-Liteのやや低レベルで強力ですが、自動化されていないバージョンです。通常、Vega-Liteから始めて、必要な場合にのみVegaに切り替えるだけで十分です。
VegaとVega-Liteの詳細については、https ://vega.github.ioを参照してください。
ClojureまたはClojureScriptのVega-LiteまたはVegaを使用したい場合は、私が書いたOzという小さいが柔軟なラッパーライブラリを確認することをお勧めします。
これは古い質問ですが、今それを見つけている人にとっては、別のオプションは、質問がされたときに利用できなかったストロークライブラリを使用することです。Strokesは、d3.jsのClojureラッパーです。