Skip to content

Releases: leeoniya/uPlot

1.6.12

04 Jun 22:44

Choose a tag to compare

1.6.11...1.6.12

  • bars pathBuilder now uses the minimum x distance between all adjacent points in dataset to determine available space for a bar. previously only the first two points were used, which may create too-wide bars when dataset is not evenly spaced.
  • auto point visibility now uses x distance between first and last in-view points to determine avg point density. previously it always used points-in-view and full width of chart, which was inaccurate if dataset does not actually span full chart (x scale is wider than dataset).

1.6.11

03 Jun 03:38

Choose a tag to compare

1.6.10...1.6.11

  • fix stroke being wrongly clipped (along with fill) when using bands with non-bars pathbuilders. see grafana/grafana#34904

1.6.10

26 May 15:15

Choose a tag to compare

1.6.9...1.6.10

  • [BREAKING] legend marker options (width, stroke, fill, dash) have moved from legend inwards to the new legend.markers. these are not commonly used opts, so it felt okay to break them mechanically as part of introducing another marker-specific option (below)
  • legend.markers.show can now be set to false to disable markers and render the labels with the stroke or fill color. (#514)
  • opts.gap for bars pathBuilder
  • formal band manip methods: .addBand(), .setBand(), .delBand(). (#516)
  • new syncRect hook for notifying when .getBoundingClientRect() is called after scroll or resize
  • expose .u-over and .u-under as instance props to reduce need for u.root.querySelector(".u-over"), reduces plugins boilerplate and improves perf
  • ensure axis auto-sizing converges after 3 cycles (fixes infinite loops & ui lockups if externally-provided axis.size() function fails to properly converge)
  • fix join() to not expand undefined values with nulls
  • fix cursor sync setSelect using own scale keys for lookups instead of emitter's
  • fix regression: cannot read 'scale' of undefined error when initializing uPlot with no y series (#519)
  • fix y-scale auto-ranging: treat deltas < 1e-9 as flat. fixes min/max of e.g. 89.69999999999999, 89.7
  • add undefined to AlignedData type series value arrays
  • bars pathBuilder improvements
  • various demos refinements

1.6.9

01 May 22:19

Choose a tag to compare

1.6.8...1.6.9

  • switch spline paths to use monotone cubic interpolation instead of centripetal Catmull-Rom. this is somewhat less curvey but avoids exceeding min/max y values. (#504)
  • enhancements, fixes and optimizations for cursor.sync
  • fix errors when legend.live: false. (#496)
  • skip updating a hidden cursor when resizing. (#499)
  • avoid error when axis tick increment calc fails, and simply skip rendering ticks. (#503)
  • add fireHook arg to .setCursor()
  • various typings and demos refinements
  • updated benchmarks for all libs

1.6.8

09 Apr 22:24

Choose a tag to compare

1.6.7...1.6.8

  • new .setLegend({idx}) API and matching hook that fires on legend updates. (#414)
  • new legend.isolate mode (Ctrl+click). (#404)
  • opts.pxAlign and series.pxAlign can now to define the pixel rounding increment to reduce micro-shifting in streaming cases. (#241)
  • axis.values can now be a static array
  • optimized handling of clientRect invalidation during resize and scrolling. also fixes bug that failed to invalidate clientRect of plots when scrolling was of an ancestor container (not window).
  • fix for float math precision issues in ms date handling. (#472)
  • 50% fewer lineTo() calls when only 2 datapoints per pixel
  • data smoothing demo: https://leeoniya.github.io/uPlot/demos/data-smoothing.html
  • new histogram demo below latency heatmaps: https://leeoniya.github.io/uPlot/demos/latency-heatmap.html
  • timeline demo improvements

1.6.7

11 Mar 15:42

Choose a tag to compare

1.6.6...1.6.7

  • fixes a perf issue with cursor.focus which caused the chart to redraw on every focus change even with alpha: 1 where no visible change happened. this caused a significant perf impact when mousing over a lot of densely-packed series.

1.6.6

09 Mar 05:43

Choose a tag to compare

1.6.5...1.6.6

1.6.5

14 Feb 23:23

Choose a tag to compare

1.6.4...1.6.5

1.6.4

02 Feb 03:09

Choose a tag to compare

1.6.3...1.6.4

  • bands now properly clip strokes, too (e.g. stacking stroked bars)
  • it's now possible to redraw axes without invalidating scales, e.g. to change the tick value formatting or precision. (#437)
  • series._focus prop to help check if a series is focused by cursor (#429)
  • opts.pxAlign & series.pxAlign opts to opt out of canvas translation during path & point drawing (#442)
  • perf improvements to linear path builder when qty of datapoints <= width pixels
  • various tweaks to uPlot.join()
  • multi-bars demo improvements
  • scale-affixed stroke gradient demo: https://leeoniya.github.io/uPlot/demos/gradient-stroke.html

1.6.3

22 Jan 02:18

Choose a tag to compare

1.6.2...1.6.3

  • fix for bands not filling below 0