v0.7.0 (June 2021)
paxtonfitzpatrick
released this
15 Jun 19:22
·
55 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
matplotlib
plotting backend set, without disrupting the global plotting backend
- Create non-animated, interactive plots for easy inspection of data using the new
interactive
keyword argument
- Set the plotting backend for a single plot using the new
mpl_backend
keyword 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_backend
function 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_BACKEND
environment 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
hypertools
in a notebook no longer creates phantom Python processes, issues warnings when TkInter isn't installed, fails ifmatplotlib.pyplot
was imported first, or silently changes the plotting backend (fixes #242) - creating 3D plots with
hypertools
no longer alters the globalmatplotlib.rcParams
object (fixes #243) hypertools
can 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
hypertools
or 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-trainedDataGeometry
objects due to renamed sklearn module