Skip to content
High level plotting on the GPU.
Branch: master
Clone or download
logankilpatrick and asinghvi17 Update (#386)
Added link to `StatsPlots.jl`
Latest commit 7851196 Sep 1, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets move icons to abstractplotting Dec 3, 2018
src don't reexport StatsMakie May 23, 2019
test get ready for new release Aug 29, 2019
.codecov.yml MakiE.jl generated files. Sep 6, 2017
.gitignore Reexport StatsMakie Mar 14, 2019
.gitlab-ci.yml get ready for new release Aug 29, 2019
CNAME Create CNAME Jan 26, 2018 Add Makie icon Nov 9, 2018
Project.toml add more test deps Aug 29, 2019 Update (#386) Sep 2, 2019
REQUIRE Reexport StatsMakie Mar 14, 2019


From the japanese word Maki-e, which is a technique to sprinkle lacquer with gold and silver powder. Data is basically the gold and silver of our age, so let's spread it out beautifully on the screen!


Build status:


pkg> add Makie
pkg> test Makie

If you plan to use Makie#master, you likely also need to check out AbstractPlotting#master and GLMakie#master.


You will need to have ffmpeg in the path to run the video recording examples. On linux you also need to add the following to get GLFW to build (if you don't have those already):


sudo apt-get install ffmpeg cmake xorg-dev


sudo dnf install ffmpeg cmake libXrandr-devel libXinerama-devel libXcursor-devel

Note that the RPM Fusion repo is needed for ffmpeg.


Makie.jl is the metapackage for a rich ecosystem, which consists of GLMakie.jl, CairoMakie.jl and WGLMakie.jl (the backends); AbstractPlotting.jl (the bulk of the package); and StatsMakie.jl (statistical plotting support, as in StatsPlots.jl).

Examples, and test infrastructure, are hosted at MakieGallery.jl

Using Juno with Makie

The default OpenGL backend for Makie is not interactive in the Juno plotpane - it just shows a PNG instead. To get full interactivity, you can disable the plotpane in Atom's settings, or execute Atom.PlotPaneEnabled[] = false.

Examples from the documentation:

Mouse interaction:

Animating a surface:

Complex examples

IJulia examples:


You can compile a binary for Makie and add it to your system image for fast plotting times with no JIT overhead. To do that, you need to check out the additional packages for precompilation. Then you can build a system image like this:

import Pkg
# add PackageCompiler and other dependencies
Pkg.add.(["PackageCompiler", "AbstractPlotting", "GDAL", "GeometryTypes", "MakieGallery", "RDatasets"])
using PackageCompiler
# This is not well tested, so please be careful - I don't take any responsibilities for a messed up Julia install.

# The safe option:
PackageCompiler.compile_incremental(:Makie, :AbstractPlotting, force = false) # can take around ~20 minutes
# After this, to use the system image, you will have to invoke Julia with the sysimg that PackageCompiler provides.

# Replaces Julia's system image
# please be very careful with the option below, since this can make your Julia stop working.
# If Julia doesn't start for you anymore, consider doing:
# using PackageCompiler; PackageCompiler.revert() # <- not well tested

PackageCompiler.compile_incremental(:Makie, :AbstractPlotting, force = true)

Should the display not work after compilation, use AbstractPlotting.__init__(), or force display by calling display(AbstractPlotting.PlotDisplay(), scene); on your Scene.

You can’t perform that action at this time.