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!
Installation
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
.
Dependencies
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):
Debian/Ubuntu
sudo apt-get install ffmpeg cmake xorg-dev
RedHat/Fedora
sudo dnf install ffmpeg cmake libXrandr-devel libXinerama-devel libXcursor-devel
Note that the RPM Fusion repo is needed for ffmpeg
.
Ecosystem
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 run `AbstractPlotting.inline!(false).
If that fails, you can disable the plotpane in Atom's settings by going to Juno
- Settings
- UI Options
- Then, make sure Enable Plot Plane
is not checked.
Examples from the documentation:
Mouse interaction:
Animating a surface:
Complex examples
Precompilation
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:
using Pkg
# add PackageCompiler and other dependencies
pkg"add PackageCompiler#master" # since there hasn't been a release of the new one yet
using PackageCompiler
# This will create a system image in the current directory, which you can
# use by launching Julia with `julia -J ./MakieSys.so`.
PackageCompiler.create_sysimage(
:Makie;
sysimage_path="MakieSys.so",
precompile_execution_file=joinpath(pkgdir(Makie), "test", "test_for_precompile.jl")
)
Should the display not work after compilation, call AbstractPlotting.__init__()
immediately after using Makie
.