logankilpatrick / Makie.jl

High level plotting on the GPU.

Home Page:http://makie.juliaplots.org/stable

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Makie.jl

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 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:

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:

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.

About

High level plotting on the GPU.

http://makie.juliaplots.org/stable

License:Other


Languages

Language:Julia 100.0%