We have a new release for you which - even though it takes the form of an unassuming patch - comes which a bunch of long-awaited changes and additions.
Frederic put in a lot of work and finished an effort originally started by Anshul ( #2014) and Julius. Now, Makie finally has its own polar axis. We consider this an experimental feature for now, which means that breaking changes to the implementation are more likely once users start testing it.
This work was a joint effort by t-bltg (
#2900) and Simon. Now you can pass scaling functions via the
colorscale parameter to plotting primitives that take numerical colors and colormaps. The numbers will then be pre-transformed before being looked up in the colormap, allowing you to quickly visualize exponential and other nonlinearly distributed data.
With the colorscale rework, Simon refactored the internal color handling which also resulted in the implementation of an
alpha keyword for most primitive plot types. This alpha value simply acts as a multiplier for any colors passed or looked up in colormaps (as opposed to a layer-based compositing alpha).
f, _ = lines(0..8, sin, color = :blue, linewidth = 10)
lines!(0..8, cos, color = :red, alpha = 0.5, linewidth = 10)
f
tricontourf
This work by Daniel switched the internal handler of triangulation computations in Makie from jll-based MiniQHull to his own package
DelaunayTriangulation.jl written completely in Julia. This allows users to exert much more control over the triangulations used for their
tricontourf plots.
Here's a more comprehensive list of changes which can also be found at docs.makie.org/stable/news/.
We hope you enjoy the new release!
Allow arbitrary functions to color
streamplot lines by passing a
Function to
color. This must accept
Point of the appropriate dimension and return a
Point,
Vec, or other arraylike object
#2002.
arrows can now take input of the form
x::AbstractVector, y::AbstractVector, [z::AbstractVector,] f::Function, where
f must return a
VecTypes of the appropriate dimension
#2597.
Exported colorbuffer, and added
colorbuffer(axis::Axis; include_decorations=false, colorbuffer_kws...), to get an image of an axis with or without decorations
#3078.
Fixed an issue where the
linestyle of some polys was not applied to the stroke in CairoMakie.
#2604
Add
colorscale = identity to any plotting function using a colormap. This works with any scaling function like
log10,
sqrt etc. Consequently,
scale for
hexbin is replaced with
colorscale
#2900.
Add
alpha=1.0 argument to all basic plots, which supports independently adding an alpha component to colormaps and colors. Multiple alphas like in
plot(alpha=0.2, color=RGBAf(1, 0, 0, 0.5)), will get multiplied
#2900.
hexbin now supports any per-observation weights which StatsBase respects -
<: StatsBase.AbstractWeights,
Vector{Real}, or
nothing (the default).
#2804
Added a new Axis type,
PolarAxis, which is an axis with a polar projection. Input is in
(r, theta) coordinates and is transformed to
(x, y) coordinates using the standard polar-to-cartesian transformation. Generally, its attributes are very similar to the usual
Axis attributes, but
x is replaced by
r and
y by
θ. It also inherits from the theme of
Axis in this manner, so should work seamlessly with Makie themes
#2990.
inherit now has a new signature
inherit(scene, attrs::NTuple{N, Symbol}, default_value), allowing recipe authors to access nested attributes when trying to inherit from the parent Scene. For example, one could inherit from
scene.Axis.yticks by
inherit(scene, (:Axis, :yticks), $default_value)
#2990.
Fixed incorrect rendering of 3D heatmaps #2959
Deprecated
flatten_plots in favor of
collect_atomic_plots. Using the new
collect_atomic_plots fixed a bug in CairoMakie where the z-level of plots within recipes was not respected.
#2793
Fixed incorrect line depth in GLMakie #2843
Fixed incorrect line alpha in dense lines in GLMakie #2843
Fixed DataInspector interaction with transformations #3002
Added option
WGLMakie.activate!(resize_to_body=true), to make plots resize to the VSCode plotpane. Resizes to the HTML body element, so may work outside VSCode
#3044,
#3042.
Fixed DataInspector interaction with transformations #3002.
Fix incomplete stroke with some Bezier markers in CairoMakie and blurry strokes in GLMakie #2961
Added the ability to use custom triangulations from DelaunayTriangulation.jl #2896.
Adjusted scaling of scatter/text stroke, glow and anti-aliasing width under non-uniform 2D scaling (Vec2f markersize/fontsize) in GLMakie #2950.
Scaled
errorbar whiskers and
bracket correctly with transformations
#3012.
Updated
bracket when the screen is resized or transformations change
#3012.