Repository navigation
v0.3.0
Highlights
- Color: colormaps (
Cmap),ColorByfor scatter and bubble points,clim(), colorbars, and color scales shared across panels withFigure(share_color=...). - New charts: heatmaps on two category axes, meshes, 2-D histograms and hexbins.
- Horizontal bars, boxes and violins, and dot plots, on a category y axis.
- Time axes with
Scale.time(): calendar ticks, concise or ISO 8601 labels. - Wheels for free-threaded Python 3.14t and 3.15t.
Changes to existing figures
Code written for 0.2 runs unchanged, apart from the new error below, but some figures look different:
- Baseline. The dark line at zero (or at the lower edge) is now drawn only for bars, histograms, areas, stacked areas and stems. Lines, scatter plots, boxes, violins, error bars and the other charts show a regular gridline instead. To bring the line back, call
ax.baseline(shown=True);shown=Falsehides it on any chart. - Automatic limits and ticks. Limits now follow the data with 5 % padding at each end instead of being rounded out to a tick, and ticks are round multiples of 1, 2, 2.5 or 5 × 10ⁿ inside them. Bars, histograms, areas and stems still start at zero. Set
xlim()/ylim()andxticks()/yticks()to fix them explicitly. - Crowded category labels. When category labels would overlap, every k-th category is labelled (k = 1, 2, 5, 10, …), starting with the first.
New errors
- A tick format with fixed decimals that cannot label any value in an automatic axis or colorbar range now raises
StyleErrorwith a hint, instead of drawing the axis without ticks. For example,TickFormat.fixed(0)on data between 0.005 and 0.009.
What's Changed
- End vertical rules and spans at a lower-limit baseline by @TJ-Junhao in #110
- Add instants, calendar ticks and concise time labels to the core by @TJ-Junhao in #112
- Fit automatic limits to bubble circles and show translucent fills as drawn in legend swatches by @TJ-Junhao in #111
- Add colormaps and the theme's sequential and diverging defaults by @TJ-Junhao in #113
- Make the y axis an axis of any kind in the core by @TJ-Junhao in #115
- Support free-threaded CPython 3.14t by @TJ-Junhao in #114
- Color scatter and bubble points by value with ColorBy, and add clim by @TJ-Junhao in #116
- Draw bars, boxes and violins horizontally on a category y axis, and scatter as a dot plot by @TJ-Junhao in #117
- Add time axes from Python through the core by @TJ-Junhao in #118
- Draw a colorbar for color-mapped marks by @TJ-Junhao in #119
- Support Python 3.15 and 3.15t, build free-threaded stable-ABI wheels and keep frame pointers by @TJ-Junhao in #120
- Add mesh, hist2d and hexbin by @TJ-Junhao in #122
- Add heatmaps on two category axes by @TJ-Junhao in #121
- Benchmark heatmaps, 2-D histograms, hexbins and time-axis lines by @TJ-Junhao in #125
- Share color scales across panels and draw row, column and figure colorbars by @TJ-Junhao in #123
- State room errors in whole points that suffice by @TJ-Junhao in #126
- Draw meshes and bubbles on time axes by @TJ-Junhao in #124
- Describe colormaps, cell charts, horizontal charts and time axes in the READMEs by @TJ-Junhao in #127
- Version 0.3.0 by @TJ-Junhao in #128
- Map each heatmap cell to its color once by @TJ-Junhao in #129
- Label every k-th category when category labels would overlap by @TJ-Junhao in #130
- Meet mesh, 2-D histogram and hexbin cells without seams by @TJ-Junhao in #131
- Draw the baseline only for marks that grow from zero, and add Axes.baseline by @TJ-Junhao in #132
- Let automatic limits follow the data, with round ticks inside them by @TJ-Junhao in #133
- Refuse a tick format that cannot show any automatic tick by @TJ-Junhao in #134
- Render the README images and benchmark table again by @TJ-Junhao in #135
Full Changelog: v0.2.0...v0.3.0