Skip to content

v0.7.0 (June 2021)

Compare
Choose a tag to compare
@paxtonfitzpatrick paxtonfitzpatrick released this 15 Jun 19:22
· 55 commits to master since this release
e7b7446

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 if matplotlib.pyplot was imported first, or silently changes the plotting backend (fixes #242)
  • creating 3D plots with hypertools no longer alters the global matplotlib.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-trained DataGeometry objects due to renamed sklearn module