v0.7.0 (June 2021)
·
83 commits
to master
since this release
Control over matplotlib backend & various bug fixes
New features:
- Create animated plots in an environment with a non-interactive
matplotlibplotting backend set, without disrupting the global plotting backend

- Create non-animated, interactive plots for easy inspection of data using the new
interactivekeyword argument

- Set the plotting backend for a single plot using the new
mpl_backendkeyword argument, and easily switch between backends within a single Python interpreter session, IPython kernel, and even Jupyter notebook cell

- Use the new
hypertools.set_interactive_backendfunction to change the backend for all future plots, or use it as a context manager to temporarily switch to a different backend. You can also use this to create multiple animated/interactive plots simultaneously.

- use
hypertools's backend adjustments to control behavior of other plotting libraries

- Set the
$HYPERTOOLS_BACKENDenvironment variable to permanently set your preferred plotting backend for non-IPython environments
NB: Currently supported backends include TkInter, GTK, wxPython, Qt4, Qt5, Cocoa (aka MacOSX; MacOS only), notebook/nbAgg (Jupyter notebooks only), and ipympl/widget (Jupyter notebooks only). 3D and interactive plots may not render properly in Colab notebooks due to security restrictions imposed by the Colaboratory platform.
Bug fixes
- importing
hypertoolsin a notebook no longer creates phantom Python processes, issues warnings when TkInter isn't installed, fails ifmatplotlib.pyplotwas imported first, or silently changes the plotting backend (fixes #242) - creating 3D plots with
hypertoolsno longer alters the globalmatplotlib.rcParamsobject (fixes #243) hypertoolscan now be imported for non-plotting-related uses in environments without a compatible GUI without throwing an error- IPython's TAB-completion no longer triggers a full import of
hypertoolsor improperly sets the plotting backend based on the subprocess's environment - require
scikit-learn<0.24(full spec:scikit-learn>=0.19.1,!=0.22,<0.24) to avoid bug when loading pre-trainedDataGeometryobjects due to renamed sklearn module