Plots is great on its own, but the real power comes from the ecosystem surrounding it. The design of Plots (and more specifically RecipesBase) is to bind together disparate functionality into a cohesive and consistent user experience. Some packages may choose to implement recipes to visualize their custom types. Others may extend the functionality of Plots for Base types. On this page I'll attempt to collect and display some of the many things you can do using the ecosystem which has developed around the Plots core.


The JuliaPlots organization builds and maintains much of the most commonly used functionality external to core Plots, as well as RecipesBase, PlotUtils, the documentation, and more.


Much of this functionality once existed in core Plots, but has been moved out to facilitate a clean separation between those features that are truly "core" and those which are specific to certain types of workflows and disciplines.

  • Types:
    • DataFrames
    • Distributions
  • Recipes:
    • histogram/histogram2d
    • boxplot
    • violin
    • marginalhist
    • corrplot/cornerplot
@df singers violin(:VoicePart, :Height, marker = (0.2, :blue, stroke(0)), legend = false) # hide
@df singers boxplot!(:VoicePart, :Height, marker = (0.3, :orange, stroke(2)), alpha = 0.75) # hide
@df singers dotplot!(:VoicePart, :Height, marker = (:black, stroke(0))) # hide