[Matplotlib-devel] [ANN] Matplotlib 3.4.0

Hi all,

We are pleased to announce the release of 3.4.0.

Pre-built wheels are available for most major platforms, and can be
installed using `pip install matplotlib==3.4.0`. Starting with this
release, we now provide wheels for aarch64. Other packages may also be
available already; please check with your preferred source.

We would like to thank the 177 authors over 772 pull requests for their
contributions to this release.

Highlights of this release include:

  * Figure and Axes creation / management
      o New subfigure functionality
      o Single-line string notation for |subplot_mosaic|
      o Changes to behavior of Axes creation methods (|gca|, |add_axes|,
        >add_subplot|)
      o |add_subplot|/|add_axes| gained an /axes_class/ parameter
      o Subplot and subplot2grid can now work with constrained layout
  * Plotting methods
      o |axline| supports transform parameter
      o New automatic labeling for bar charts
      o A list of hatches can be specified to |bar| and |barh|
      o Setting |BarContainer| orientation
      o Contour plots now default to using |ScalarFormatter|
      o |Axes.errorbar| cycles non-color properties correctly
      o |errorbar| /errorevery/ parameter matches /markevery/
      o |hexbin| supports data reference for /C/ parameter
      o Support callable for formatting of Sankey labels
      o |Axes.spines| access shortcuts
      o New |stairs| method and |StepPatch| artist
      o Added /orientation/ parameter for stem plots
      o Angles on Bracket arrow styles
      o |TickedStroke| patheffect
  * Colors and colormaps
      o Collection color specification and mapping
      o Transparency (alpha) can be set as an array in collections
      o pcolormesh has improved transparency handling by enabling snapping
      o IPython representations for Colormap objects
      o |Colormap.set_extremes| and |Colormap.with_extremes|
      o Get under/over/bad colors of Colormap objects
      o New |cm.unregister_cmap| function
      o New |CenteredNorm| for symmetrical data around a center
      o New |FuncNorm| for arbitrary normalizations
      o GridSpec-based colorbars can now be positioned above or to the
        left of the main axes
  * Titles, ticks, and labels
      o supxlabel and supylabel
      o Shared-axes |subplots| tick label visibility is now correct for
        top or left labels
      o An iterable object with labels can be passed to |Axes.plot|
  * Fonts and Text
      o Text transform can rotate text direction
      o |matplotlib.mathtext| now supports /overset/ and /underset/
        LaTeX symbols
      o /math_fontfamily/ parameter to change |Text| font family
      o |TextArea|/|AnchoredText| support /horizontalalignment/
      o PDF supports URLs on Text artists
  * rcParams improvements
      o New rcParams for dates: set converter and whether to use
        interval_multiples
      o Date formatters now respect /usetex/ rcParam
      o Setting /image.cmap/ to a Colormap
      o Tick and tick label colors can be set independently using rcParams
  * 3D Axes improvements
      o Errorbar method in 3D Axes
      o Stem plots in 3D Axes
      o 3D Collection properties are now modifiable
      o Panning in 3D Axes
  * Interactive tool improvements
      o New |RangeSlider| widget
      o Sliders can now snap to arbitrary values
      o Pausing and Resuming Animations
  * Sphinx extensions
      o |plot_directive| /caption/ option
  * Backend-specific improvements
      o Consecutive rasterized draws now merged
      o Support raw/rgba frame format in |FFMpegFileWriter|
      o nbAgg/WebAgg support middle-click and double-click
      o nbAgg support binary communication
      o Indexed color for PNG images in PDF files when possible
      o Improved font subsettings in PDF/PS
      o Kerning added to strings in PDFs
      o Fully-fractional HiDPI in QtAgg
      o wxAgg supports fullscreen toggle

For further details, please see the What's new in Matplotlib 3.4.0 page:
https://matplotlib.org/3.4.0/users/whats_new.html
and the milestone on GitHub:

For packagers, this release contains some changes to dependencies:

  * Qhull is downloaded while building the sdist (if you are not using
    the sdist). If compiling against the system Qhull, then the
    reentrant version is required.

This release is signed by my GPG key. The fingerprint is:
23CA B59E 3332 F94D 26BE F037 8D86 E7FA E5EB 0C10
and it is also used to sign this message.

Thank you to Elliott for being the release manager and to everyone who contributed to this release!

Tom

···

Thomas Caswell
tcaswell@gmail.com