Документация Engee

Makie.jl

Страница в процессе перевода.

Makie — это экосистема визуализации данных для языка программирования Julia, отличающаяся высокой производительностью и расширяемостью.

Она доступна для Windows, Mac и Linux.

Makie превращает ваши данные в красивые изображения или анимации, например:

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)
    notify(colors)
    l.colorrange = (0, frame)
end

Установка

Makie предлагает четыре различных бэкенда (подробнее см. в разделе Что такое бэкенд). Мы рекомендуем GLMakie для интерактивных графиков с ускорением на GPU и CairoMakie для статичной векторной графики.

  • GLMakie (OpenGL based, interactive)

  • CairoMakie (Cairo based, static vector graphics)

  • WGLMakie (WebGL based, displays plots in the browser)

  • RPRMakie (Experimental ray-tracing using RadeonProRender)

Нужный бэкенд устанавливается с помощью диспетчера пакетов Julia Pkg:

using Pkg
Pkg.add("GLMakie")

Устанавливать пакет Makie.jl отдельно не требуется, так как он экспортируется каждым пакетом бэкенда.

Первые шаги

Если вы новичок в Makie, обратитесь к разделу Начало работы.

Интересные идеи можно почерпнуть в коллекции графиков Beautiful Makie.

Обзор сторонних пакетов, расширяющих возможности Makie, приведен в разделе Экосистема.

Цитирование Makie

Если вы используете Makie в научной публикации, укажите ссылку на нашу статью JOSS следующим образом:

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

:

details Показать BibTeX

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

== Получение справки

  1. Используйте режим справки ? в REPL.

  2. Чтобы открыть предварительно отформатированную тему на странице обсуждений Julia, перейдите по этой ссылке. Если вы делаете это вручную, используйте категорию Domain/Visualization и помечайте вопросы тегом Makie, чтобы привлечь к ним внимание.

  3. Обсудить экосистему Makie и ее развитие в неформальной обстановке можно на сервере Makie в Discord. Вопросы об использовании следует задавать в Discourse, а не в Slack, чтобы они и ответы на них были доступны всем.

  4. Чтобы сообщить о технической неполадке или ошибке, создайте проблему в репозитории Makie.jl, который служит для централизованного решения проблем с Makie и бэкендами.