Join 10350+ others. No spamming.
I promise!

Follow us at github.



johnmyleswhite / Vega.jl


A Julia package for generating visualizations in Vega



Build StatusVega


A Julia package for creating Vega visualizations. Convenience functions for common visualizations are provided, while also allowing for unlimited customization through modification of the main VegaVisualization composite type.

At a high-level, Vega.jl is designed to provide an easy-to-use library to quickly make common visualizations, while also including some of the interactivity provided as part of the Vega 2.x JavaScript library. This package also provides a declarative syntax that deviates from Grammar-of-Graphics style packages.


using Vega

Currently, an Internet connection is required to use Vega.jl through Jupyter Notebook, as the required JavaScript libraries are delivered from a CDN. Using Vega from the REPL will work without an Internet connection.


For examples of the current functionality of Vega.jl, please see the documentation


Here's the current TODO list (along with the GitHub issues); of course, any contribution, on this list or not, is greatly appreciated!

To Do:


  • area, (vertical) boxplot in coord_flip!, public-facing as horizontal keyword
  • Fill in ::VegaTransform type with actual fields
  • jitter! function for adding small delta to points #74
  • How to layer plots? #73
  • error bars/shading around lines, regression line #53
  • How to incorporate more interactivity to hover! #70
  • Create a "cheater" d3 type to use charts from and as templates?

Vega Visualizations:

  • Bullet Chart #47
  • Dotplot/Error #49
  • Horizon #69
  • annotate heatmap / marklabels! function #59
  • Treemap
  • Force
  • Violin plot
  • Contour
  • Parallel coordinates
  • Scatterplot matrix (faceting)
  • Barley (Faceting)
  • Diverging Stacked Bar Chart
  • Polar coordinate graph
  • Spiderweb graph / radial
  • hexbin
  • correlation plot
  • cluster map

d3 Visualizations (?):

  • Add chord chart from d3.js (requested at vega/vega project)
  • Hexbinning (requested at vega/vega project)
  • Sankey from d3.js
  • Calendar View Chart from d3.js


  • State-level
  • Country-level

Value unclear (but still possible):

  • Switch to Nullable Types
  • Sanitize inputs to be correct for visualization
  • change add_data! to not add zeroes everywhere there are blanks
  • overload Base.+ with pipe operator to mimic ggplot syntax
  • Have global settings similar to Seaborn/Gadfly themes
  • Integrate with DataFrames more in-depth
  • control charts #41
  • yticks!, xticks! function (covered by keyword arguments on xlab! and ylab! I think)