Makie.jl

High level plotting on the GPU

Github stars Tracking Chart

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!

Documentation:

Build status:

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.

Main metrics

Overview
Name With OwnerMakieOrg/Makie.jl
Primary LanguageJulia
Program languageJulia (Language Count: 6)
Platform
License:MIT License
所有者活动
Created At2017-09-25 22:07:50
Pushed At2025-06-03 20:16:32
Last Commit At2025-06-03 16:30:26
Release Count142
Last Release Namev0.22.10 (Posted on 2025-06-03 14:59:31)
First Release Namev0.0.1 (Posted on )
用户参与
Stargazers Count2.5k
Watchers Count25
Fork Count344
Commits Count7.7k
Has Issues Enabled
Issues Count2863
Issue Open Count744
Pull Requests Count1509
Pull Requests Open Count99
Pull Requests Close Count422
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private