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!
julia>]
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 StatPlots.jl
).
Examples, and test infrastructure, are hosted at MakieGallery.jl
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:
# 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
.