d3-area-label

A library for placing labels in areas.

BSD-3-CLAUSE License

Downloads
1K
Stars
76
Committers
3

Bot releases are hidden (Show)

d3-area-label - v1.6.0 Latest Release

Published by curran 8 months ago

d3-area-label - All methods chainable

Published by curran over 5 years ago

Thanks to @Legion4444 for this contribution that makes all methods chainable! Details in https://github.com/curran/d3-area-label/pull/24

Also upgraded dependencies to the latest versions.

Enjoy!

d3-area-label - ES6 Fix & Change in interpolateResolution Default

Published by curran about 7 years ago

  • ES6 Fix makes this library work well with Webpack (#19)
  • Changed default interpolateResolution from 200 to 800 based on observation that 200 is not enough usually.
d3-area-label - Interpolation

Published by curran about 7 years ago

Use Interpolation #16

Before (in Refugees StreamGraph):
image

After:
image

Before (in test/smallN.html):
image

After:
image

d3-area-label - Correctness

Published by curran about 7 years ago

Guarantee Labels are Inside Areas #14.

There was an issue where when the gaps between data points was large, the labels were not always ending up inside the area.

Before:
image

After:
image

d3-area-label - 1.0

Published by curran about 7 years ago

  • API change - function now returns an object with a toString method that generates an SVG transform.
  • Accessors #6
  • Padding #8
  • Algorithm improvements:
    • Compute maxHeight #9
    • Break inner test loop as soon as we know the rectangle will not fit
  • Expose number of iterations and raw coordinates in result
d3-area-label - Algorithm improvement

Published by curran about 7 years ago

Break out of the inner test loop as soon as we know the rectangle will not fit.

d3-area-label - Bisection Method

Published by curran about 7 years ago

This version uses the Bisection Method to search for the largest size label, using fewer iterations than before, and achieving more accurate results.

Now the algorithm uses a tolerance for accuracy of the height of the label bounding box in pixels, which is by default 0.01. Using this tolerance, the bisection method takes around 18 iterations on average to find a solution, as compared to on average around 100 with the previous linear search method, which was only accurate to a tolerance of 1.

d3-area-label - First Working Version

Published by curran about 7 years ago

image

The algorithm is not efficient (linear scan of possible sizes), and the results are not precise (integer height increments are searched only), but it's basically working.