- Documented the layout algorithm used in tubes plots.
- Added
scale_bar
option todemesdraw.tubes()
, and--scale-bar
option to thedemesdraw tubes
CLI, to draw a scale bar that indicates the population size. - Removed dependency on
cvxpy
by going back toscipy
for optimisation of the deme positions. The trust-constr method with linear constraints seems to work well.
- Added mouseover annotation popups for interactive tubes plots.
- Dropped support for Python 3.6.
- Performance improvement when calculating tube positions.
- Fix incompatibility with "legend" labels and matplotlib 3.6.0.
- Improved the default positions of demes in
demesdraw.tubes()
for tree-like models and more elaborate models with many demes. The previously used optimisation procedure (scipy's SLSQP) has been removed in favour of constrained convex optimisation usingcvxpy
. - Increased the default amount of space that separates demes in
demesdraw.tubes()
, and use more space when there are more contemporary demes (seedemesdraw.utils.separation_heuristic()
). - Filter numpy warnings about overflow when using a log scale. The overflow in question is harmless and these warnings only serve to confuse users.
Breaking change
- Removed the
optimisation_rounds
parameter todemesdraw.tubes()
.
Breaking change
- Updates for demes 0.2.0, which changes the syntax for pulses
from using a single
source
andproportion
to using a list ofsources
and a list ofproportions
.
- Added
max_time
parameter todemesdraw.tubes()
. - Don't draw ancestry lines for vertically stacked demes.
- Pin demes < 0.2 in install_requires.
- Made some
demesdraw.utils
functions public and cleaned up namespace. - Added CLI, with
tubes
andsize_history
subcommands.
- Fixed problem with numpy 1.21.
- Reinstate support for Python 3.6.
- Fix plotting of arrowheads (avoids a matplotlib warning; no visible change).
- Add ISC license file.
- Require demes >= 0.1.2 in install_requires.
- Add linear size function ({user}
noscode
, {pr}23
).
- Initial release, including
demes.tubes()
anddemes.size_history()
functions.