Skip to content

Latest commit

 

History

History
95 lines (68 loc) · 3.53 KB

README.md

File metadata and controls

95 lines (68 loc) · 3.53 KB

clj-wordcloud Clojars Project Build Status

A simple clojure wrapper around kumo to generate wordcloud

Leiningen

[xtreak/clj-wordcloud "0.0.1"]

Documentation

Documentation is generated by Codox and it's available at https://tirkarthi.github.io/clj-wordcloud/

Example

Given a map of element and the frequency the following image is generated. More examples/examples.clj.

Circle

(ns examples
  (:require [clj-wordcloud.core :refer :all]))

(def programming-languages ["Clojure" "Haskell" "Go" "Rust" "Scala" "Python" "Perl"
                            "Ruby" "Smalltalk" "PHP" "Java" "JavaScript"
                            "C" "C++" "Lisp" "Scheme" "Typescript" "D" "R" "Brainfuck" "Elixir"
                            "Erlang" "C#" "BASIC" "Logo" "Alice" "Dart" "Purescript" "Prolog"
                            "Ada" "F#" "Julia" "Kotlin" "Swift" "Delphi"])

(let [frequency-map (zipmap programming-languages (shuffle (range 300)))
      word-cloud    (word-cloud frequency-map
                                {:dimension  {:width  600
                                              :height 600}
                                 :background {:type  :circle
                                              :size  300
                                              :color "0x000000"}
                                 :font       {:type       "Calibre"
                                              :weight     :plain
                                              :scale-type :linear
                                              :x-scale    20
                                              :y-scale    20
                                              :padding    5}})]
  (write-to-file word-cloud "example_circle.png"))

Sample

Bitmaps

(ns examples
  (:require [clj-wordcloud.core :refer :all]))

(let [frequency-map (zipmap (range 100 150) (shuffle (range 300)))
      word-cloud    (word-cloud frequency-map
                                {:dimension  {:width  600
                                              :height 600}
                                 :background {:type   :pixel
                                              :size   300
                                              :color  "0x000000"
                                              :bitmap "examples/backgrounds/haskell_1.bmp"}
                                 :font       {:type       "Calibre"
                                              :weight     :plain
                                              :scale-type :linear
                                              :x-scale    20
                                              :y-scale    20
                                              :padding    5}})]
  (write-to-file word-cloud "example_haskell.png"))

Sample

TODO

  • API parity with Kumo
  • clojure.spec for docs and validation
  • Cool examples
  • Better tests

Contributing

Contributions are welcome. Please refer to CONTRIBUTING.md.

Stability

This library is still in early development phase and the API is subject to change. API design comments are welcome.

Thanks

Thanks to @kennycason for kumo without which this library is not possible

License

Copyright © 2018 Karthikeyan S

Distributed under the MIT License