Welcome to Makie!
Makie is a data visualization ecosystem for the Julia programming language, with high performance and extensibility. It is available for Windows, Mac and Linux.
Example
using GLMakie
Base.@kwdef mutable struct Lorenz
dt::Float64 = 0.01
σ::Float64 = 10
ρ::Float64 = 28
β::Float64 = 8/3
x::Float64 = 1
y::Float64 = 1
z::Float64 = 1
end
function step!(l::Lorenz)
dx = l.σ * (l.y - l.x)
dy = l.x * (l.ρ - l.z) - l.y
dz = l.x * l.y - l.β * l.z
l.x += l.dt * dx
l.y += l.dt * dy
l.z += l.dt * dz
Point3f(l.x, l.y, l.z)
end
attractor = Lorenz()
points = Observable(Point3f[])
colors = Observable(Int[])
set_theme!(theme_black())
fig, ax, l = lines(points, color = colors,
colormap = :inferno, transparency = true,
axis = (; type = Axis3, protrusions = (0, 0, 0, 0),
viewmode = :fit, limits = (-30, 30, -30, 30, 0, 50)))
record(fig, "lorenz.mp4", 1:120) do frame
for i in 1:50
push!(points[], step!(attractor))
push!(colors[], frame)
end
ax.azimuth[] = 1.7pi + 0.3 * sin(2pi * frame / 120)
notify.((points, colors))
l.colorrange = (0, frame)
end
Installation and Import
Add one or more of the Makie backend packages
GLMakie.jl
(OpenGL),
CairoMakie.jl
(Cairo), or
WGLMakie.jl
(WebGL),
RPRMakie
(RadeonProRender) using Julia's inbuilt package manager. Each backend re-exports
Makie
so there's no need to install it separately.
]add GLMakie
using GLMakie
To switch to a different backend, for example
CairoMakie
, call
CairoMakie.activate!()
.
First Steps
Makie Ecosystem
There are four backends, each of which has particular strengths. You can switch between backends at any time.
The differences between backends are explained in more details under Backends .
Extensions and Resources
These packages and sites are maintained by third parties. If you install packages, keep an eye on version conflicts or downgrades as the Makie ecosystem is developing quickly so things break occasionally.
Citing Makie
If you use Makie for a scientific publication, please cite our JOSS paper the following way:
Danisch & Krumbiegel, (2021). Makie.jl: Flexible high-performance data visualization for Julia. Journal of Open Source Software, 6(65), 3349, https://doi.org/10.21105/joss.03349
You can use the following BibTeX entry:
@article{DanischKrumbiegel2021,
doi = {10.21105/joss.03349},
url = {https://doi.org/10.21105/joss.03349},
year = {2021},
publisher = {The Open Journal},
volume = {6},
number = {65},
pages = {3349},
author = {Simon Danisch and Julius Krumbiegel},
title = {Makie.jl: Flexible high-performance data visualization for Julia},
journal = {Journal of Open Source Software}
}
Getting Help
-
Use the REPL
?
help mode. -
Click this link to open a preformatted topic on the Julia Discourse Page . If you do this manually, please use the category Domain/Visualization and tag questions with
Makie
to increase their visibility. -
For casual conversation about Makie and its development, have a look at the
#makie
channel in the Julia Slack group . Please direct your usage questions to Discourse and not to Slack, to make questions and answers accessible to everybody. -
For technical issues and bug reports, open an issue in the Makie.jl repository which serves as the central hub for Makie and backend issues.
These docs were autogenerated using Makie: v0.17.13, GLMakie: v0.6.13, CairoMakie: v0.8.13, WGLMakie: v0.6.13