- Ellipses are now supported by setting the new argument
shape = "ellipse" in
euler(). This functionality accompanies an overhaul of the innards of the function.
- Initial optimization function and gradient have been ported to C++.
- The initial optimizer has been switched from
stats::optim(..., method = "L-BFGS-B") to
- The final optimizer now falls back to
GenSA::GenSA() when the fit from
nlminb() isn't good enough, by default for 3 sets and ellipses, but this behavior can be controlled via a new argument
- A packing algorithm has been introduced to arrange disjoint clusters of ellipses/circles.
- The label placement algorithm has been rewritten to handle ellipses and been ported to C++. It now uses numerical optimization, which should provide slightly more accurate locations.
- The initial optimizer now uses an analytical Hessian in addition to gradient.
- The initial optimizer now restarts up to 10 times and picks the best fit (unless it is perfect somewhere along the way).
- The default palette has been changed to a fixed palette, still adapted to color deficiency, but with some manual adjustments to, among other things, avoid unnecessary use of color.
- The names of the
regionError metrics have been changed from
region_error to reflect the original names.
- The coordinates for the centers are now called h and k instead of x and y, respectively.
- A new
label() function has been added to extract locations for the overlaps for third party plotting (#10).
counts argument to
panel.euler.labels() have been deprecated in favor of the more appropriate
plot.euler() that was deprecated in v2.0.0 has been made defunct.