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.