Greetings

I'm excited to announce the release of oz 1.5.1.

https://github.com/metasoarous/oz

Oz is a simple data visualization library built around Vega & Vega-Lite.

In Vega & Vega-Lite, data visualizations are specified as pure data 
descriptions about how to map properties of your data and interactions to 
aesthetics of a visualization.  To find out more about Vega & Oz please 
visit https://github.com/metasoarous/oz.

This release specifically adds some major new features:

* Jupyter notebook support via the Clojupyter & IClojure kernels
* Export of visualizations and scientific documents to live/interactive 
html files via the `export!` function
* Load markdown files, with a notation for embedding visualizations as code 
blocks
* Cljdoc API documentation (https://cljdoc.org/d/metasoarous/oz)

These features, together with those already built into oz (REPL based 
workflow, hiccup support, Reagent components & publishing/sharing API), 
make oz a powerful tool for working with data visualizations and scientific 
documents from within Clojure, no matter the workflow.  I hope you find it 
useful.


*## Markdown support*

I'd like to specifically illustrate the markdown support feature, as its 
the one I'm most excited to start using myself, as well as the one which 
demands the most explanation.

How many times have you been working on a simple markdown document, and 
realized you wanted to add a data visualization to illustrate a point?  
What did you have to do to get it done?  My guess is you had fire up 
another tool, like R's `ggplot`, or Python's `matplotlib`, export a static 
figure, and awkwardly embed it into your markdown document, hoping to God 
you don't have to update it, and go through the ordeal again.

With oz, you can simply embed vega-lite or vega visualizations like this:

    # Some markown file

    A data visualization:

    ```edn vega-lite
    {:data {:values [{:a 2 :b 3 :c "T"} {:a 5 :b 2 :c "T"} {:a 7 :b 4 :c 
"Q"} {:a 3 :b 3 :c "Q"}]}
     :mark :point
     :width 400
     :encoding {:x {:field "a"}
                :y {:field "b"}
                :color {:field "c"}}}
    ```

The `load` function parses the markdown file, and uses the `edn vega-lite` 
code block class to determine that the block should be interpreted as a 
Vega-Lite visualization.  The fact that `edn` is one of the classes here 
means that your text editor and other markdown processors (if you push to 
GitHub or whatever) will recognize what kind of data it is and highlight it 
appropriately.  (Thanks to GH users mpcarolin and yogthos for promptly 
updating their markdown processing libraries to allow for the specification 
of multiple code classes.)

Once loaded, the corresponding document can be immediately viewed with the 
`view!` function, exported to a self-contained html file via `export!`, or 
published online with a shareable link via `publish!`.

This notation allows you to embed as either `json` or `yaml` in lieu of 
`edn`, or `vega` in lieu of `vega-lite`.  Moreover, `hiccup` can be 
embedded (possibly with `[:vega ...]` or `[:vega-lite ...]` nodes), for 
when you want more power than Markdown affords, but don't want to resort to 
manually writing html in your beautiful Markdown.


*## Jupyter notebook support*

While I personally prefer creating scientific documents from the comfort of 
my favorite text editor & REPL setup, I understand the value of the 
notebook environment.  In fact, my first programming language was 
Mathematica, and there's a part of me that holds warm reverie for the 
model.  Thus, it is with great pleasure that I announce that Oz can now be 
used as a go-to for those who enjoy using these environments and wish to be 
able to create powerful and interactive data visualizations therein.

This feature would not have been possible without GH users mikeyford, 
keesterbrugge, jtcbrule, cgrand.
Thank you all for your help initiating and piecing together a solution to 
the problem(s)!

For usage details can be found in the README.


*## In closing*

I hope that you find this nexus of features and ideas useful, and that you 
help me make Vega, Vega-Lite & Oz a standard part of the Clojure toolkit 
for data science.

Thanks for your time

Christopher Small

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to