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}
}
- :
-
== Получение справки
-
Используйте режим справки
?в REPL. -
Чтобы открыть предварительно отформатированную тему на странице обсуждений Julia, перейдите по этой ссылке. Если вы делаете это вручную, используйте категорию Domain/Visualization и помечайте вопросы тегом
Makie, чтобы привлечь к ним внимание. -
Обсудить экосистему Makie и ее развитие в неформальной обстановке можно на сервере Makie в Discord. Вопросы об использовании следует задавать в Discourse, а не в Slack, чтобы они и ответы на них были доступны всем.
-
Чтобы сообщить о технической неполадке или ошибке, создайте проблему в репозитории Makie.jl, который служит для централизованного решения проблем с Makie и бэкендами.
-