Makie 0.22.2 is finally here and introduces many fixes and improvements.
We've enhanced pattern support by adding tests and fixing various issues along the way. Patterns should now work more consistently across different plot types and backends. Additionally, we've improved line rendering for
LinePattern
and anchored patterns to plot coordinates for better visual quality.
If you're not yet familiar with patterns, you can now learn more about them, along with other texture-like color options in the updated color documentation.
When we updated
Axis3
to feature zooming and translation controls we also added clipping at the axis boundary. If a plot element sits right at the boundary, e.g. due to setting margins to 0, they would sometimes get clipped and sometimes not. To avoid this, we moved the clip planes slightly outside the axis. As noted below we also added the option to completely turn off clipping in a separate pull request.
v0.22 | v0.22.2 |
---|---|
![]() |
![]() |
Introduced a tutorial explaining how to create inset plots. Mention the zoom_lines function from MakieExtras.jl for connecting inset plots.
Documented how vertex order affects normal generation in mesh plots, providing clarity on how different vertex arrangements can impact plot appearance.
We addressed discrepancies in volume plot algorithms between GLMakie and WGLMakie and added more detailed documentation and tests for volume rendering. We fixed an issue with
:mip
truncating values at
0
, fixed
RGBA
algorithms not accepting
RGBA
data and connected the
absorption
keyword to
:absorptionrgba
and
:indexedabsorption
.
We improved handling of NaN values in surface plots, ensuring consistency across different backends and updated reference images to reflect these changes. Specifically we are now treating NaNs in positions as invalid data, resulting in the relevant vertices being cut instead of defaulting to 0.
v0.22 | v0.22.2 |
---|---|
![]() |
![]() |
Added DPI metadata to PNG files, allowing external applications to interpret and display images at the correct size specified by their px perunit setting.
In
#4758 we changed how textures are handled by
voxels
. They now rely on
uv_transform
instead of
uvmap
which gives you further control about texture coordinates. For example, it allows you to rotate the texture. The texture coordinates generated for the different voxel sides have changed to be more consistent with expectation, see
the texture mapping documentation. We also adjusted texture coordinates to scale with
gap
so that voxels remain fully covered by the texture they are assigned.
Beyond that we have some smaller fixes:
Fixed an issue with voxels not rendering on linux with firefox #4756.
Fixed an issue causing voxel planes to shift when using
rotate!(plot, ...)
#4824
Fixed
uv_transform = :rotr90
and
:rotl90
being swapped
#4758
v0.22 | v0.22.2 |
---|---|
![]() |
![]() |
contourf
Enabled curvilinear
contourf
plots by allowing contour calculations to be dispatched on and transforming Isoband output using bilinear interpolation.
voronoiplot
for clipped tessellations
Resolved an issue with
voronoiplot
to work correctly with clipped tessellations and automatic color generation which was previously causing errors.
We introduced a feature that allows users to disable clipping in
Axis3
by setting
ax.clip[] = false
. Note that you could already do this on a per-plot basis by overwriting the
clip = Plane3f[]
attribute when creating a plot.
When a plot is created its transformations, i.e. the
transform_func
(for example the
log
transform of an Axis) and model transformations (as set by
scale!()
,
rotate!()
and
translate!()
) are inherited from its parent based on whether their
space
is compatible. This only used to check the direct parent, which created a problem when
space = :data
represented pixel, clip or relative space through a pixel, empty or relative camera. We now trace the space up to the parent scene to resolve this issue.
Added options to slider updates, including
update_while_dragging
and
throttle
, and introduced
lowres_background
to the
Resampler
to optimize performance when updating
heatmap(Resampler(data))
often.
Fix rare shader compilation error #4755
Upgrade to threejs 0.173, fixing a rare problem with NaNs in buffers
Fix WGLMakie nan error in cut plane, which broke Axis3 #4772
fix UInt underflow in line indices #4782
Restored support for rendering higher-dimensional geometries with the
poly()
function, enabling 3D shape visualization as a mesh with outlines.
Enabled setting the
inspectable
attribute within themes, allowing for theme-wide customization of inspectability options across plots.
Block.attri...
to autocomplete
We added support for autocompletion for attributes on Block types. This allows you to tab-complete attributes while looking for documentation, e.g.
?Axis.xl
will complete to
?Axis.xlabel
.
Fixed an issue where PolarAxis protrusions did not consider visibility states, e.g. due to being hidden by
hidedecorations!(ax)
.
Optimized widget updates by reducing redundant updates, and by removing
pick()
usage where possible. This solves a rare issue, where
Textfield
would stop working on a server with higher latency.
We fixed an issue causing tick events to not be spawned in WGLMakie and connected the window_open event. This also fixes issues with animated Widgets, e.g. Toggle not working in WGLMakie.