  There are plenty of excellent plotting libraries. Each excels at a different
use case: one is good for printed 2D publication figures, the other at
interactive 3D graphics, a third has excellent L A TEX integration or is good
for creating dashboards on the web. The aim of Plots.jl is to enable the user
to use the same syntax to interact with many different plotting libraries, such
that it is possible to change the library "backend" without needing to touch
the code that creates the content -- and without having to learn yet another
application programming interface (API). This is achieved by the separation of
the plot specification from the implementation of the actual graphical backend.
These plot specifications may be extended by a "recipe" system, which allows
package authors and users to define how to plot any new type (be it a
statistical model, a map, a phylogenetic tree or the solution to a system of
differential equations) and create new types of plots -- without depending on
the Plots.jl package. This supports a modular ecosystem structure for plotting
and yields a high reuse potential across the entire julia package ecosystem.
Plots.jl is publicly available at https://github.com/JuliaPlots/Plots.jl.
