I’m happy to announce Deneb.jl, a convenient Julia API for creating Vega-Lite visualizations.
I began developing this package nearly two years ago, mainly as a personal project to deepen my understanding of Julia. However, I eventually lost track of it. Recently, I decided to revive the project and noticed that it is in a decent shape to be shared.
With Deneb.jl one can create Vega-Lite visualizations in the following way:
using Deneb
cars = "https://vega.github.io/vega-datasets/data/cars.json"
Data(url=cars) * Mark(:point) * Encoding(
"Horsepower:q",
"Miles_per_Gallon:q",
color=:Origin
)
See the Gallery for more examples.
Registration of Deneb.jl in the General registry was requested today.
Why another wrapper to Vega-Lite?
The excellent VegaLite.jl package already exists in the Julia ecosystem. So, why create yet another package to accomplish the same thing?
As an enthusiast of Julia and a Vega-Lite/Altair, I was really pleased to discover VegaLite.jl in the Julia ecosystem. However, I found its plot composition strategy to be somewhat confusing and unclear (refer to this VegaLite.jl issue for more details). In response to this, I suggested an alternative composition strategy in this PR. This was the spark for me to start Deneb.jl, primarly as a personal learning exercise.
Caveat
Deneb.jl is not intended as a replacement for VegaLite.jl. VegaLite.jl benefits from the attention of numerous contributors with vast experience in creating and maintaining Julia packages. In contrast, I am simply a Julia and Vega-Lite enthusiast with limited time to explore Julia’s capabilities in my free time. However, if Deneb.jl attracts some interest, I’m willing to continue improving its documentation and other aspects of the package. Of course, contributions from others are always welcome.