Makie.jl

Makie.jl: Flexible high-performance data visualization for Julia - Published in JOSS (2021)

https://github.com/MakieOrg/Makie.jl

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    19 of 240 committers (7.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords

gpu graphics julia julia-language plotting visualization

Keywords from Contributors

flux the-human-brain simulations setup-tool science-research project-management project-assistant unconstrained-optimization climate-change unconstrained-optimisation
Last synced: 4 months ago · JSON representation ·

Repository

Interactive data visualizations and plotting in Julia

Basic Info
Statistics
  • Stars: 2,610
  • Watchers: 25
  • Forks: 351
  • Open Issues: 895
  • Releases: 133
Topics
gpu graphics julia julia-language plotting visualization
Created over 8 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation

README.md

Makie.jl logo
[![][docs-stable-img]][docs-stable-url] [![][docs-master-img]][docs-master-url] [![Build Status](https://github.com/MakieOrg/Makie.jl/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/MakieOrg/Makie.jl/actions/workflows/ci.yml?query=branch%3Amaster) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/MakieOrg/Makie.jl/blob/main/LICENSE) [![Downloads](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FMakie&query=total_requests&suffix=%2Fmonth&label=Downloads)](http://juliapkgstats.com/pkg/Makie) [![JOSS][joss-img]][joss-url] [![Mastodon](https://img.shields.io/badge/-mastodon-%232B90D9?style=for-the-badge&logo=mastodon&logoColor=white)](https://mastodon.social/@makieorg) [![chat][discord-img]][discord-url]

Makie is an interactive data visualization and plotting ecosystem for the Julia programming language, available on Windows, Linux and Mac. The backend packages GLMakie, WGLMakie, CairoMakie and RPRMakie add different functionalities: You can use Makie to interactively explore your data and create simple GUIs in native windows or web browsers, export high-quality vector graphics or even raytrace with physically accurate lighting.

The name Makie (we pronounce it Mah-kee) is derived from the japanese word Maki-e, which is a technique to sprinkle lacquer with gold and silver powder. Data is the gold and silver of our age, so let's spread it out beautifully on the screen!

To learn more, we invite you to visit the documentation at docs.makie.org.

Citing Makie

If you use Makie for a scientific publication, please acknowledge and support our work by citing 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

BibTeX entry: ```bib @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} } ```

or Download the BibTeX file.

Community Channels

We are on Discord and Discourse! Community channels are a great way for you to ask questions and get help. Please join us!

Installation

Choose one or more backend packages: GLMakie (interactive OpenGL in native OS windows), WGLMakie (interactive WebGL in browsers, IDEs, notebooks), CairoMakie (static 2D vector graphics and images) and RPRMakie (raytracing). Each backend re-exports all of Makie.jl so you don't have to install or load it explicitly.

Install:

julia julia>] pkg> add GLMakie

Check the installed version:

julia ]st GLMakie

Start using the package:

julia using GLMakie

Developing Makie

🔥 Click for more 🔥 Makie and its backends all live in the Makie monorepo. This makes it easier to change code across all packages. Therefore, dev'ing Makie almost works as with other Julia packages, just, that one needs to also dev the sub packages: ```julia # local will clone the repository at ./dev/Makie # Pkg is smart enough to dev the backends at `/dev/Makie/GLMakie` for the below ]dev --local Makie GLMakie CairoMakie WGLMakie RPRMakie ``` To run the tests, you also should add: ```julia ]dev dev/Makie/ReferenceTests ``` For more info about ReferenceTests, check out its [README](./ReferenceUpdater/README.md)

Examples

The following examples are supposed to be self-explanatory. For further information check out the documentation!

A simple parabola

julia x = 1:0.1:10 fig = lines(x, x.^2; label = "Parabola", axis = (; xlabel = "x", ylabel = "y", title ="Title"), figure = (; size = (800,600), fontsize = 22)) axislegend(; position = :lt) save("./images/parabola.png", fig) fig

A more complex plot with unicode characters and LaTeX strings:

Similar to the one on this link

Show Code ```julia x = -2pi:0.1:2pi approx = fill(0.0, length(x)) cmap = [:gold, :deepskyblue3, :orangered, "#e82051"] with_theme(palette = (; patchcolor = cgrad(cmap, alpha=0.45))) do fig, axis, lineplot = lines(x, sin.(x); label = L"sin(x)", linewidth = 3, color = :black, axis = (; title = "Polynomial approximation of sin(x)", xgridstyle = :dash, ygridstyle = :dash, xticksize = 10, yticksize = 10, xtickalign = 1, ytickalign = 1, xticks = (-π:π/2:π, ["π", "-π/2", "0", "π/2", "π"]) )) translate!(lineplot, 0, 0, 2) # move line to foreground band!(x, sin.(x), approx .+= x; label = L"n = 0") band!(x, sin.(x), approx .+= -x .^ 3 / 6; label = L"n = 1") band!(x, sin.(x), approx .+= x .^ 5 / 120; label = L"n = 2") band!(x, sin.(x), approx .+= -x .^ 7 / 5040; label = L"n = 3") limits!(-3.8, 3.8, -1.5, 1.5) axislegend(; position = :ct, backgroundcolor = (:white, 0.75), framecolor = :orange) save("./images/approxsin.png", fig, size = (800, 600)) fig end ```

Simple layout: Heatmap, contour and 3D surface plot

Show Code ```julia x = y = -5:0.5:5 z = x .^ 2 .+ y' .^ 2 cmap = :plasma with_theme(colormap = cmap) do fig = Figure(fontsize = 22) ax3d = Axis3(fig[1, 1]; aspect = (1, 1, 1), perspectiveness = 0.5, azimuth = 2.19, elevation = 0.57) ax2d = Axis(fig[1, 2]; aspect = 1, xlabel = "x", ylabel="y") pltobj = surface!(ax3d, x, y, z; transparency = true) heatmap!(ax2d, x, y, z; colormap = (cmap, 0.65)) contour!(ax2d, x, y, z; linewidth = 2, levels = 12, color = :black) contour3d!(ax3d, x, y, z; linewidth = 4, levels = 12, transparency = true) Colorbar(fig[1, 3], pltobj; label="z", labelrotation=pi) colsize!(fig.layout, 1, Aspect(1, 1.0)) colsize!(fig.layout, 2, Aspect(1, 1.0)) resize_to_layout!(fig) save("./images/simpleLayout.png", fig) fig end ```

Interactive example by AlexisRenchon:

out

Example from InteractiveChaos.jl

interactive chaos

Sponsors

Förderkennzeichen: 01IS10S27, 2020

Owner

  • Name: MakieOrg
  • Login: MakieOrg
  • Kind: organization
  • Email: info@makie.org
  • Location: Germany

Organization for the Makie plotting ecosystem

Citation (CITATION.bib)

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

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 6,509
  • Total Committers: 240
  • Avg Commits per committer: 27.121
  • Development Distribution Score (DDS): 0.594
Past Year
  • Commits: 378
  • Committers: 56
  • Avg Commits per committer: 6.75
  • Development Distribution Score (DDS): 0.757
Top Committers
Name Email Commits
SimonDanisch s****h@g****m 2,641
Julius Krumbiegel j****l@g****m 1,548
ffreyer f****4@h****e 573
Anshul Singhvi a****7@s****u 473
Anthony Wang a****2@g****m 298
github-actions[bot] 4****] 134
piever p****i@p****m 50
Pietro Vertechi p****i@n****g 46
t-bltg t****g@g****m 28
Tim Holy t****y@g****m 26
George Datseris d****e@g****m 22
Fabian Greimel f****i@g****m 19
Ian i****h@g****m 19
Mus m****m@o****m 18
David Widmann d****n 17
Michael Krabbe Borregaard m****d@s****k 17
Florian f****r@g****m 16
Dehaybe h****e@h****e 14
Chris Foster c****f@g****m 14
Eddie Groshev e****9@h****m 14
Moritz Schauer m****r@w****e 13
Alexander Plavin a****r@p****n 13
dependabot[bot] 4****] 12
KronosTheLate 6****e 11
Simon Byrne s****e@g****m 11
Daniel VandenHeuvel 9****H 11
Logan Kilpatrick l****6@g****u 11
Jan Weidner j****6@g****m 10
Ben Arthur b****0@g****m 8
Gabriel Rilling g****g@g****m 8
and 210 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 1,612
  • Total pull requests: 1,788
  • Average time to close issues: over 1 year
  • Average time to close pull requests: about 1 month
  • Total issue authors: 570
  • Total pull request authors: 156
  • Average comments per issue: 3.21
  • Average comments per pull request: 2.46
  • Merged pull requests: 1,192
  • Bot issues: 2
  • Bot pull requests: 126
Past Year
  • Issues: 414
  • Pull requests: 894
  • Average time to close issues: 16 days
  • Average time to close pull requests: 12 days
  • Issue authors: 224
  • Pull request authors: 72
  • Average comments per issue: 0.86
  • Average comments per pull request: 1.78
  • Merged pull requests: 603
  • Bot issues: 2
  • Bot pull requests: 82
Top Authors
Issue Authors
  • asinghvi17 (91)
  • aplavin (45)
  • jkrumbiegel (33)
  • ffreyer (33)
  • Datseris (31)
  • bjarthur (27)
  • KronosTheLate (26)
  • kbarros (26)
  • rafaqz (25)
  • jariji (24)
  • SimonDanisch (20)
  • Moelf (19)
  • felixcremer (17)
  • EdsterG (16)
  • Kevin-Mattheus-Moerman (15)
Pull Request Authors
  • ffreyer (385)
  • SimonDanisch (360)
  • jkrumbiegel (250)
  • asinghvi17 (126)
  • github-actions[bot] (111)
  • aplavin (41)
  • t-bltg (35)
  • DanielVandH (30)
  • EdsterG (29)
  • bjarthur (25)
  • JamesWrigley (19)
  • dependabot[bot] (15)
  • Moelf (14)
  • abhro (13)
  • lazarusA (10)
Top Labels
Issue Labels
bug (758) enhancement (294) Makie (200) GLMakie (80) WGLMakie (67) documentation (66) CairoMakie (41) (log) scale (40) planning (37) good first issue (33) Attributes (31) colors (28) rendering (27) interaction (27) plot (25) regression (23) MakieLayout (20) feature request (20) conversions (19) Axis (17) units (16) transformation (15) Legend & Colorbar (15) text (14) arrows (14) maybe outdated/fixed (13) maybe outdated (12) help wanted (12) dependencies (11) (tri)contour(f) (9)
Pull Request Labels
skip-changelog (350) documentation (34) bug (30) dependencies (17) enhancement (14) GLMakie (12) (log) scale (11) CairoMakie (11) breaking (10) CI (7) nfc (5) WGLMakie (5) rich text (5) Makie (4) units (4) github_actions (3) exclude from changelog (2) interaction (2) Legend & Colorbar (2) mesh (2) (tri)contour(f) (2) recipes (2) gui (1) MakieLayout (1) macOS (1)

Packages

  • Total packages: 9
  • Total downloads:
    • julia 26,466 total
  • Total dependent packages: 245
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 966
juliahub.com: GLMakie

Interactive data visualizations and plotting in Julia

  • Versions: 161
  • Dependent Packages: 50
  • Dependent Repositories: 4
  • Downloads: 3,581 Total
Rankings
Stargazers count: 0.1%
Forks count: 0.1%
Dependent packages count: 1.7%
Average: 1.8%
Dependent repos count: 5.5%
Last synced: 4 months ago
juliahub.com: Makie

Interactive data visualizations and plotting in Julia

  • Versions: 122
  • Dependent Packages: 102
  • Dependent Repositories: 0
  • Downloads: 8,117 Total
Rankings
Dependent packages count: 1.1%
Average: 5.5%
Dependent repos count: 9.9%
Last synced: 4 months ago
proxy.golang.org: github.com/MakieOrg/Makie.jl
  • Versions: 126
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 4 months ago
proxy.golang.org: github.com/makieorg/makie.jl
  • Versions: 126
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 4 months ago
juliahub.com: CairoMakie

Interactive data visualizations and plotting in Julia

  • Versions: 150
  • Dependent Packages: 66
  • Dependent Repositories: 0
  • Downloads: 5,780 Total
Rankings
Dependent packages count: 2.5%
Average: 6.2%
Dependent repos count: 9.9%
Last synced: 4 months ago
juliahub.com: MakieCore

Interactive data visualizations and plotting in Julia

  • Versions: 51
  • Dependent Packages: 20
  • Dependent Repositories: 0
  • Downloads: 2,848 Total
Rankings
Dependent packages count: 7.0%
Average: 8.5%
Dependent repos count: 9.9%
Last synced: 4 months ago
juliahub.com: WGLMakie

Interactive data visualizations and plotting in Julia

  • Versions: 138
  • Dependent Packages: 7
  • Dependent Repositories: 0
  • Downloads: 860 Total
Rankings
Dependent packages count: 8.4%
Average: 9.2%
Dependent repos count: 9.9%
Last synced: 4 months ago
juliahub.com: ComputePipeline

Interactive data visualizations and plotting in Julia

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 5,243 Total
Rankings
Dependent repos count: 8.3%
Average: 22.1%
Dependent packages count: 35.8%
Last synced: 4 months ago
juliahub.com: RPRMakie

Interactive data visualizations and plotting in Julia

  • Versions: 87
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 37 Total
Rankings
Dependent repos count: 9.9%
Average: 24.4%
Dependent packages count: 38.9%
Last synced: 4 months ago

Dependencies

.github/workflows/CompatHelper.yml actions
.github/workflows/Docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/RegisterAction.yml actions
  • julia-actions/RegisterAction latest composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/compilation-benchmark.yaml actions
  • actions/checkout v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/refimages_status.yaml actions
  • actions/github-script v6 composite
.github/workflows/rprmakie.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/stale_preview_removal.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/relocatability.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/reference_tests.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • codecov/codecov-action v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/setup-julia v1 composite