I switched permanently from Plots.jl to Makie.jl in order to have backend-agnostic fine-grained control. My publication plots look fantastic and the power given to users is really something. It also has a nicer API than Plots.jl once you get a hang of the figure, axis, plot distinction (plots live inside axes live inside figures) and what goes where.<p>Unfortunately, as with Plots, the documentation is lacking. The basic tutorial does a good job introducing the aspects of the package at a high level, but the fact that some parts of the documentation uses functions/structs that don't have docstrings in examples makes it very hard to build on the examples in these cases.<p>I get it, I <i>can</i> do anything with Makie, and most things that I want to do work amazingly. But my code for a single figure can get huge because it's all so low level. See, for example, the Legend documentation[1].<p>[1]: <a href="https://docs.makie.org/stable/examples/blocks/legend/index.html#multi-group_legends" rel="nofollow noreferrer">https://docs.makie.org/stable/examples/blocks/legend/index.h...</a>
One annoying thing about trying to install Makie (although it would be silly to blame Makie for it) is that installing it pulls <i>a ton</i> of compiled C/C++ binary dependencies. I'm talking Fontconfig, Xorg(!?), Cairo, a bunch of audio and video codecs and compression libraries, among other things. Most/all of these are transitive dependencies, though. And all of these are already installed system-wide, independently of Julia.<p>Although Julia is my favorite PL by far, it's sometimes shocking how easily the Julia community sidesteps traditional programming values. Often this turns out to be a good thing, but the above issue is surely not a good example. I'd very much prefer to leave the work of packaging all those to the Archlinux maintainers.<p>EDIT: to be clear, this is more of a Julia-wide issue than a Makie issue. Or partly an issue with some of the Julia packages that Makie depends on. But Makie is perhaps the worst offender among the popular packages (transitively).
Makie is a modern plotting library for Julia. It is easy to use, fast and powerful. Packed with features, it is a general-purpose tool that makes as few compromises for specialized use cases as possible.<p>Try it out today:
install Julia and <a href="https://julialang.org/downloads" rel="nofollow noreferrer">https://julialang.org/downloads</a> and in the Julia REPL run:<p>]add GLMakie<p>using GLMakie<p>scatter(1:4)
Coming from matplotlib, I found Makie such a breath of fresh air. The API is just as (if not more) flexible but way more predictable. Their layout system in particular is amazing. I think it bundles it's own constraint engine?
Congrats on the new website!<p>PS. Thanks to the Makie team for the shoutout to my corner plot package in the ecosystem section!
Chris Rackauckas has put together a valuable guide to the Julia plotting ecosystem here:<p><pre><code> http://www.stochasticlifestyle.com/summary-of-julia-plotting-packages/
</code></pre>
Useful, because the wealth of choices confuses people.<p>I stick with Plots.jl because of the recipe system. This is Plots’ secret weapon. If you create a package with its own data types, you can include instructions telling Plots how to visualize them. The user then need simply type<p><pre><code> plot(custom_type; etc.)
</code></pre>
to get the custom visualization. And the package need not include Plots as a dependency for this to work. This is only one of the things the recipe system can do.
Absolutely insane visuals - that does really make me want to play around with Makie. Bravo!<p>Traditionally, time to first plot has been awful in Julia. I remember using about 30 seconds back in 2018 to render my first Gadfly image. How is Makie doing on this front?
I was quite impressed to see they have their own online conference. I’ve never heard of GGcon or matplotlibcon.<p>I’m not using Julia, so I really don’t know about the library, but it seems like it has a very strong community
It seems like there's a lot of libraries for plotting in Julia now. Does anyone know how good interoperability between Julia and R is? I have a lot of workflows in R and Python using some pretty niche bio informatics libraries, but Julia just seems...better.
I'm not interested in Julia, but this is pretty awesome stuff. It looks like it is built right on top of OpenGL and WebGL. How foes one go about learning to accomplish and develop this type of thing?
Great package & community... As someone who was new to both julia & makie, the community was helpful. & what Makie lacked in documentation at the time, the authors were active in various forums for community questions. thanks Simon & krumbie
in terms of being the only charting library to update based on diffs, this might be true for julia but javascript charting libraries have been doing this for a while. my favorite is echarts.