Since the announcement of the new makie website popped up on Slack and HN: Makie starts looking more and more polished, to the point where I’m considering giving it a serious try for publications.
Until now, I’m using
matplotlib for pub-ready figures (and Plots.jl for day-to-day exploratory visualization in Jupyter notebooks). So far, I’ve found matplotlib to be the only plotting system that provides the kind of extreme customization that I need for most of the plots that I’d put in a publication, and I wonder to what extent Makie has comparable capabilities yet.
These would be recent examples of the kind of figures I’m talking about:
Some of the customizations in these are:
- absolute figure width and the ability to place all axes at specific positions and sizes to align them with other axes or even axes in other figures
- Matching the exact font and font size of the LaTeX document where these figures will be embedded
- LaTeX math (subscript/superscripts, properly formatted log-scale labels)
- Place text annotation at arbitrary positions in “mixed coordinates”, e.g., “left baseline” should be 2pt left and 3pt above the data point with
x=x₀and at 0.5 of the height of the axes.
- arrows to/from arbitrary points, with customizable arrowheads and padding, specified in arbitrary “mixed coordinates”
- Specify an arbitrary bounding box for any text labels with custom shape (rounded corners), background color, padding, transparency
- Choose which spines are shown for any given axes
- Control the position/padding of axis labels in absolute pt
- Place legends for any subset of lines at arbitrary absolute positions
- Match the color of text labels to a particular line
- Place colorbars at arbitrary absolute positions with absolute width/height
- Manually choose all major and minor ticks and their tick labels
- Control the zorder of any element in the plot
- For every line, choose whether it should clip or not clip to the axes
- Rasterize a plot while keeping the axes/annotations as vector graphics
- Modify e.g. the background color or alignment of just one particular tick mark
- Place insets at arbitrary positions and indicate the inset origin
- Unusual axes like a polar plot, with the ability to place annotations/arrows in polar coordinates
There’s probably more. Ultimately, I find that matplotlib allows me to customize pretty much every aspect of any line, patch, or letter that appears anywhere in the figure (although I admit that the process is rather laborious and time-consuming, and I only do this for publication figures).
How close is Makie to being able to handle these and similar customization needs?