Skip to content

Proposed ENH: Allow user to turn off breaking of streamlines in streamplot #8388

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ketch opened this issue Mar 27, 2017 · 14 comments
Closed
Milestone

Comments

@ketch
Copy link
Contributor

ketch commented Mar 27, 2017

tl;dr: streamplot does this:
download

I'd like this:
download1

I found a way to do this and I would like to submit a PR. I'm asking for input from a developer on whether this would be worthwhile and whether the approach I'm thinking of makes sense.

More details

I'm plotting a vector field with streamplot, and no matter how large I set the density, it interrupts streamlines at (seemingly random) points. My understanding is that streamplot uses a grid and only allows one streamline to pass through each cell of the grid. So if streamlines get too close to each other, one of them must end.

What I'd really like is that if any part of a given streamline is plotted, then the whole thing is plotted. That is, streamlines should continue in both directions until they leave the plot region. You might think that you could achieve this by setting a large value of the density argument. But it seems that density also determines how many starting points are selected for streamlines, so this doesn't help. I'm using Matplotlib 2.0.0 but I've also tried with a clone of the current dev version.

I've found a way to accomplish what I want, by simply changing the last line of this snippet (from the StreamMask class):

    def _update_trajectory(self, xm, ym):
        """Update current trajectory position in mask.

        If the new position has already been filled, raise `InvalidIndexError`.
        """
        if self._current_xy != (xm, ym):
            if self[ym, xm] == 0:
                self._traj.append((ym, xm))
                self._mask[ym, xm] = 1
                self._current_xy = (xm, ym)
            else:
                raise InvalidIndexError

to

    def _update_trajectory(self, xm, ym):
        """Update current trajectory position in mask.

        If the new position has already been filled, raise `InvalidIndexError`.
        """
        if self._current_xy != (xm, ym):
            if self[ym, xm] == 0:
                self._traj.append((ym, xm))
                self._mask[ym, xm] = 1
                self._current_xy = (xm, ym)
            else:
                pass

I'd like to submit a PR that allows the user to do this. My suggestion would be:

  • Have a keyword argument no_broken_streamlines (or similar) that defaults to False.
  • If set to True, then streamplot will behave as with my patch above.

To reproduce the figure at the top, use this code:

import numpy as np
import matplotlib.pyplot as plt

N = 400
h, hu = np.meshgrid(np.linspace(0.1,6,N),np.linspace(-3,3,N))
g = 1.
u = hu/h
dh = np.ones_like(h)
dhu = u - np.sqrt(g*h)
plt.streamplot(h,hu,dh,dhu,density=1.,arrowstyle='-')
plt.axis('tight');
@ketch ketch changed the title Allow user to turn off breaking of streamlines in streamplot Proposed ENH: Allow user to turn off breaking of streamlines in streamplot Mar 28, 2017
@lzhadid
Copy link

lzhadid commented Oct 24, 2017

Hi,
is this the file you modified ?
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/streamplot.py

What did you put for "axes" when using the streamplot function ?

@ketch
Copy link
Contributor Author

ketch commented Oct 24, 2017

is this the file you modified ?
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/streamplot.py

Yes.

What did you put for "axes" when using the streamplot function ?

I don't think I passed an axes argument.

@lzhadid
Copy link

lzhadid commented Oct 24, 2017

I tried without passing the axes argument, it didn't work. I had to define the "axes", it is actually an input in the defined function:

def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None,
cmap=None, norm=None, arrowsize=1, arrowstyle='-|>',
minlength=0.1, transform=None, zorder=None, start_points=None,
maxlength=4.0, integration_direction='both'):
"""Draws streamlines of a vector flow.
x, y : 1d arrays
an evenly spaced grid.

@afvincent
Copy link
Contributor

@lzhadid axes is the Axes instance where you want to plot the streamplot. You can use plt.gca() to get the lastly used Axes instance when you are using the pyplot interactive interface.

@lzhadid
Copy link

lzhadid commented Oct 24, 2017

Thank you! It works now. It wasn't working because I was using fig0, ax = plt.subplots(). Using only ax=plt.gca() works perfectly!

@lzhadid
Copy link

lzhadid commented Oct 24, 2017

Do you know if one can get the coordinates of the different streamlines in an ordered way, other than .lines.get_segments() or .lines.get_paths() ?

@tacaswell tacaswell added this to the v2.2 milestone Oct 24, 2017
@tacaswell
Copy link
Member

@ketch Sorry this fell through the cracks in March!

Can you open a Pull Request with those changes + a way to make this behavior configurable through the streamplot api?

@Cyclone-Zhang
Copy link

It's not working now by changing the last line of < _update_trajectory>

@henry2004y
Copy link

Is there any update to this issue? Years have passed and I am still suffering from the same thing...

@timhoffm
Copy link
Member

Sorry, no update on this. As you can see from issues and open PRs, matplotlib is a large project with limited resources. Any updates would have been noted here.

@ketch
Copy link
Contributor Author

ketch commented Apr 11, 2020

@henry2004y I opened a PR -- if you're interested, please complete the outstanding parts there. Or you can just check out my branch and it will work (just pass broken_streamlines=False when calling streamplot).

@henry2004y
Copy link

Thanks for sharing! Actually I noticed that in Matlab the default streamline has the same behavior as the original Matplotlib version. I looked further into some other libraries like yt and SpacePy, and they seem to have this implemented, but just for their internal data structure. Even larger visualization software like Tecplot and ParaView for CFD have streamline implemented as we want, but sometimes they are not so easy to use through APIs.

@donglai96
Copy link

@henry2004y I opened a PR -- if you're interested, please complete the outstanding parts there. Or you can just check out my branch and it will work (just pass broken_streamlines=False when calling streamplot).

Thank you, this saved my day. I will find time to work on the remaining PR issue

@oscargus
Copy link
Member

Fixed by #22707

@QuLogic QuLogic modified the milestones: needs sorting, v3.6.0 Apr 14, 2022
clrpackages pushed a commit to clearlinux-pkgs/pypi-matplotlib that referenced this issue Nov 1, 2022
…ersion 3.6.1

Abhishek K M (1):
      [Doc] consolidate `rect` documentation (#22820)

Adeel Hassan (1):
      fix typo

Aitik Gupta (6):
      Specify font number for TTC fonts
      ENH: support font fallback for Agg renderer
      ENH: implement font fallback for PDF
      ENH: implement fontfallback for eps backen
      Add high-level documentation
      Reword sentences to be more formal

Andras Deak (1):
      Fix reference to Matplotlib FAQ in doc/index.rst

Andrew Fennell (11):
      RangeSlider handle set_val bugfix
      Added handle position checks to test_widgets.py
      Added clim support to tri/tripcolor
      Fixed bug in find_nearest_contour; Added test
      Changed PR to pull request in coding guide subtitles
      Fixed _upcast_err docstring and comments in _axes.py
      Raised macosx memory leak threshold by 1000000
      Fixed dpi issue in rainbow text example
      Fixed installation doc typo
      Added negative_linestyles to contour
      Added tests for contour linestyles and negative_linestyles

Andrés Martínez (1):
      Backport PR #23813: Triplot duplicated label

Anna Mastori (6):
      Add uuid in im1 name
      Remove uuid before im1
      Change the result_dir to be test-specific
      Remove unused import make_test_filename
      Fix indentation
      Fix dash offset bug in Patch (#23412)

AnnaMastori (1):
      Fix RangeSlider for same init values

Antony Lee (426):
      Reword BoundaryNorm docs.
      Fix documented allowed values for Patch.set_edgecolor.
      Fix missorted changelog entry.
      Switch documented deprecations in mathtext by `__getattr__` deprecations
      Remove unused HostAxes._get_legend_handles.
      Make warning for no-handles legend more explicit.
      legend_handler_map cleanups.
      Small cleanups to math_to_image.
      Cleanup some dviread docstrings.
      Docstring cleanups.
      Rename symbol_name to glyph_name where appropriate.
      Clarify support for 2D coordinate inputs to streamplot.
      Make HandlerLine2D{,Compound} inherit constructors from HandlerNpoints.
      Remove unused icon_filename, window_icon globals.
      Deprecate some backend_gtk3 helper globals.
      Fix ToolManager + TextBox support.
      Remove now-unused rcParams _deprecated entries.
      Test the rcParams deprecation machinery.
      Deemphasize mpl_toolkits in API docs.
      Avoid TransformedBbox where unneeded.
      Reword custom_ticker1 example.
      Factor out for_layout_only backcompat support in get_tightlayout.
      Inline ToolManager._trigger_tool to its sole call site.
      Minor homogeneization of markup for MEP titles.
      Make date.{converter,interval_multiples} rcvalidators side-effect free.
      Make rcParams["backend"] backend fallback check rcParams identity first.
      Improve formatting of imshow() cursor data independently of colorbar.
      Prefer "none" to "None" in docs, examples and comments.
      set_dashes does not support offset=None anymore.
      Fix validate_markevery docstring markup.
      Remove most visible dependencies on distutils.
      Deprecate support for no-args MarkerStyle().
      Support marker="none" to mean "no marker".
      Explicit registration of canvas-specific tool subclasses.
      Deprecate MarkerStyle(None).
      Fix overindented bullet list in docs.
      Update sticky_edges docstring to new behavior.
      Cleanup demo_tight_layout.
      Capitalization fixes in example section titles.
      Move colormap examples from userdemo to images_contours_and_fields.
      Fix make_norm_from_scale `__name__` when used inline.
      CTRL does not fix aspect in zoom-to-rect mode.
      Simplify/uniformize sample data setup in plot_types examples.
      Simplify argument parsing in stem().
      Tweak streamplot plot_types example.
      Small cleanups to colorbar.
      Docstring cleanups around DATA_PARAMETER_PLACEHOLDER.
      Fix DATA_PARAMETER_PLACEHOLDER interpolation for quiver&contour{,f}.
      Fix format_cursor_data with nans.
      Fix clim handling for pcolor{,mesh}.
      Rename `**kw` to `**kwargs`.
      Improve curve_error_band example.
      Increase marker size in double_pendulum example.
      Cleanup contour(f)3d examples.
      Remove uninformative `.. figure::` titles in docs.
      Small doc fixes.
      Deprecate mlab.stride_windows.
      Deprecate error_msg_foo helpers.
      Discourage making style changes to extern/.
      Update contributing guide.
      Rework headers for individual backend docs.
      Fix very-edge case in csd(), plus small additional cleanups.
      Fix more edge cases in psd, csd.
      Compress comments in make_image.
      Parametrize/simplify test_missing_psfont.
      Small doc nits.
      Shorten PdfPages FAQ entry.
      Fix release notes typos.
      Fix some syntax highlights in coding and contributing guide.
      Don't use pixelDelta() on X11.
      Fix format_cursor_data for values close to float resolution.
      Fix incorrect markup in example.
      Make `Path.__deepcopy__` interact better with subclasses, e.g. TextPath.
      Clarify FigureBase.tight_bbox as different from all other artists.
      Simplify _init_legend_box.
      Simplify `Colormap.__call__` a bit.
      Inherit more docstrings.
      Fix trivial docstring typo.
      Fix type1font docstring markup/punctuation.
      Make image_comparison work even without the autoclose fixture.
      Add GHA testing whether files were added and deleted in the same PR.
      Raise an exception when find_tex_file fails to find a file.
      Demonstrate inset_axes in scatter_hist example.
      Factor common parts of saving to different formats using pillow.
      Make rcParams.copy() return a new RcParams instance.
      Use bbox.{size,bounds,width,height,p0,...} where appropriate.
      Simplify parameter handling in FloatingAxesBase.
      Refactor hexbin().
      Move label hiding rectilinear-only check into _label_outer_{x,y}axis.
      Clear findfont cache when calling addfont().
      Raise when unknown signals are connected to CallbackRegistries.
      Simplify filename tracking in FT2Font.
      Very soft-deprecate AxesDivider.new_{horizontal,vertical}.
      Stash exceptions when FT2Font closes the underlying stream.
      Reword annotations tutorial section titles.
      Privatize some SVG internal APIs.
      Support pathological tmpdirs in TexManager.
      Document webagg in docs.
      Use Bbox.unit() more.
      Use _generate_transform more.
      Move gui_support.macosx option to packages section.
      Uncamelcase some internal variables in axis.py; rename _get_tick_bboxes.
      Update docstrings of get_{view,data}_interval.
      set_ticks([single_tick]) should also expand view limits.
      Also exclude pyparsing 3.0.0 in setup.py.
      Make pipong example self-contained.
      Make Axis3D constructor signature closer to the one of 2D axis.
      Clip slider init marker to slider track.
      Clarify set_parse_math documentation.
      Refix for pyparsing compat.
      mark_inset should manually unstale axes limits before drawing itself.
      Fix support for clim in scatter.
      Delay-load keymaps in toolmanager.
      Make _request_autoscale_view more generalizable to 3D.
      Reword margins docstrings, and fix bounds on zmargin values.
      Remove unnecessary False arg when constructing wx.App.
      Return minorticks as array, not as list.
      Fix check for manager presence in blocking_input.
      Turn mouseover into a mpl-style getset_property.
      Fix transparency when exporting to png via pgf backend.
      Various small fixes for streamplot().
      Skip invisible artists when doing 3d projection.
      Further remove remnants of offset_position.
      Rename/remove _lastCursor, as needed.
      Make gtk3 full_screen_toggle more robust against external changes.
      Make ToolFullScreen a Tool, not a ToolToggle.
      Check for added-and-modified images in a given PR.
      Skip some uses of packaging's PEP440 version for non-Python versions.
      Replace some image_comparisons by return-value-tests/check_figures_equal.
      Simplify test for negative xerr/yerr.
      Bind subplot_tool more closely to target figure.
      Drop non-significant zeros from ps output.
      Small code cleanups and style fixes.
      Use _api.check_shape more.
      Whitespace/braces/#defines cleanup to macosx.
      Use cycling iterators in RendererBase.
      Simplify macosx toolbar init.
      Fix/add docstring signatures to many C++ methods.
      Don't sort pdf dicts.
      Add a helper for directly output pdf streams.
      Update gitattributes so that objc diffs are correctly contextualized.
      Fix doc typo.
      Factor out some macosx gil handling for py-method calls from callbacks.
      Don't hide build log on GHA.
      Inherit many macos backend docstrings.
      Shorten PyObjectType defs in macosx.m.
      Use designated initializers, inline entries.
      Fix some docstrings.
      Refix check for manager presence in deprecated blocking_input.
      Fix missing return value in closeButtonPressed.
      Replace NSDictionary by switch-case.
      Expire _check_savefig_extra_args-related deprecations.
      Shorten some inset_locator docstrings.
      Cleanup axes_zoom_effect example.
      Slightly shorten ft2font init.
      Remove unused bbox arg to _convert_agg_to_wx_bitmap.
      Use partialmethod for better signatures in backend_ps.
      Fold _rgbacache into _imcache.
      Small `__getstate__` cleanups.
      Update comment re: register_at_fork.
      Distinguish AbstractMovieWriter and MovieWriter in docs.
      Remove tests for avconv animation writers.
      Refactor common parts of ImageMagick{,File}Writer.
      Slightly cleanup RendererBase docs.
      Update missing_references.
      Fix some more missing references.
      Clarify current behavior of draw_path_collection.
      Store dash_pattern as single attribute, not two.
      Reword inset axes example.
      Deprecate duplicated FigureManagerGTK{3,4}Agg classes.
      Slightly tighten the _get_layout_cache_key API.
      InvLogTransform should only return masked arrays for masked inputs.
      Autoinfer norm bounds.
      FigureCanvasCairo can init RendererCairo; kill RendererCairo subclasses.
      PEP8ify wx callback names.
      Fix picklability of make_norm_from_scale norms.
      Fix rubberbanding on wx+py3.10.
      Use _make_classic_style_pseudo_toolbar more.
      Make RendererCairo auto-infer surface size.
      Initialize RendererCairo.{width,height} in constructor.
      Fix syntax highlighting in contrib guide.
      Simplify wx _print_image.
      Simplify canvas class control in FigureFrameWx.
      Some gtk cleanups.
      Privatize various internal APIs of backend_pgf.
      flipy only affects the drawing of texts, not of images.
      Use standard toolbar in wx.
      Keep FontEntry helpers private.
      Document how to prevent TeX from treating `&`, `#` as special.
      Deprecate the noop, unused FigureCanvasBase.resize.
      Make required_interactive_framework required on FigureCanvas.
      Remove unnecessary `.figure` qualifier in docs.
      Simple style(ish) fixes.
      Update both zoom/pan states on wx when triggering from keyboard.
      Expire colorbar-related deprecations.
      Cleanup differential equations examples.
      Remove unnecessary nulls in macosx.m.
      Use NSMakeRect more; declare variables closer to initialization.
      Micro-optimize rotation transform.
      Turn _localaxes into a plain list.
      Micro-optimize skew().
      Switch transOffset to offset_transform.
      Drop dependency on scipy in the docs.
      Rewrite AxesStack independently of cbook.Stack.
      In mpl_toolkits, use the same floating point slop as for standard ticks.
      Expire axes_grid1/axisartist deprecations.
      Factor out underline-thickness lookups in mathtext.
      Jointly track x and y in PolygonSelector.
      Trivial doc fix to annotations tutorial.
      Remove some unnecessary getattrs.
      Use named groups in mathtext parser.
      Deprecate cleared kwarg to get_renderer.
      Ensure that all toolbar (old/new) subclasses can be init'ed consistently
      Improve ft2font error reporting.
      Merge main and "other" params docs in colorbar.make_axes.
      Unify toolbar init across backends.
      Numpydocify _colormap_kw_doc and use it in Colorbar too.
      Fix Qt enum access.
      Simplify FontProperties.copy().
      Rework/fix Text layout cache.
      Display bad format string in error message.
      Rename outdated seaborn styles.
      Replace sole use of maxdict by lru_cache.
      More standardization of floating point slop in mpl_toolkits.
      Let TransformedPatchPath inherit most functionality from TransformedPath.
      wx.App() should be init'ed in new_figure_manager_given_figure
      Docstrings for _qhull.
      Slightly refactor TeX source generation.
      Share FigureManager class between gtk3 and gtk4.
      Reuse imsave()'s background-blending code in FigureCanvasAgg.print_jpeg.
      Simplify wxframe deletion.
      Fix "trailing" whitespace in C docstrings.
      Deprecate various custom FigureFrameWx attributes/methods.
      Properly capitalize "Unicode".
      Replace tabs with spaces in C code.
      Tweak Axes3D docstrings that refer to 2D plotting methods.
      Support passing rgbaFace as an array to agg's draw_path.
      Factor out common limits handling for x/y/z axes.
      Redupe parameters dealiasing for clarity.
      Make most params to figure()/Figure() kwonly.
      Avoid indiscriminate glob-remove in xpdf_distill.
      Update plt.figure() docstring.
      Fix ambiguous link targets in docs.
      Deprecate backend_ps.convert_psfrags.
      Small cleanup to quiver.
      Make emit and auto args of set_{x,y,z}lim keyword only.
      Simplify impl. of polar limits setting API.
      Copy arrowprops argument to FancyAnnotationBbox.
      Small improvements related to radar_chart example.
      Cleanup AnnotationBbox.
      Deprecate unused AddList.
      Improve readability of mathtext internal structures.
      Clarify error message for bad keyword arguments.
      Small cleanup to font handling in agg.
      Un-pyplot some examples which were already explicitly referencing axes.
      Remove _point_size_reduction.
      Turn _mathtext.ship into a plain function.
      Remove unused recursion depth tracking in ship.
      Unalign equals.
      Make clamp use a ternary.
      Remove _mathtext.Node.grow.
      Stop computing glyph_name in mathtext font handling.
      Remove used_characters tracking in mathtext.
      Remove Fonts.{set_canvas_size,width,height,descent,get_results}.
      Expire rename_parameter in _mathtext.
      Lift Parser.State to toplevel as standalone class.
      Remove now unused StandardPsFonts, latex_to_{standard,cmex}, use_cmex.
      Tweak arrow demo size.
      Some more maintenance for mathtext internal implementation.
      Deprecate unused, untested Affine2D.identity().
      Linewrap setupext to 79 character lines.
      Don't key MathTextParser cache off a mutable FontProperties.
      Remove entries of MathTextParser._backend_mapping deprecated in 3.4.
      Document, test, and simplify impl. of auto_adjustable_area.
      Simplify FontProperties init.
      Move tracking of autoscale status to Axis.
      Simplifications to ToolManager.{add,remove}_tool.
      Simplify the internal API to connect picklable callbacks.
      Reorder text api docs.
      Deprecate toplevel mpl.text.get_rotation; normalize rotations early.
      Small cleanups around TexManager usage.
      Require sphinx>=3 & numpydoc>=1.0 for building docs.
      Tweak dependency checking in doc/conf.py.
      Prepare for making create_dummy_axis not necessary.
      Fix loading tk on windows when current process has >1024 modules.
      Use picklable callbacks for DraggableBase.
      Rename qhull source to _qhull_wrapper.cpp.
      Add space between individual transform components in svg output.
      Suppress exception chaining in colormap lookup.
      Remove reference to now-deleted reminder note.
      Tweak colorbar_placement example.
      Deprecate backend_qt.qApp.
      Deprecate auto-removal of overlapping Axes by plt.subplot{,2grid}.
      Remove QuadMesh from mouseover set.
      Small simplification to textpath.
      Switch TeX baseline detection to use a dvi special.
      Let TeX handle newlines itself.
      Pick TeX cache name based on entire TeX source.
      Slightly reformat tex source generation.
      Rename confusingly-named cm_fallback.
      Small style fixes.
      Revert datetime usetex ticklabels to use default tex font.
      Move towards making texmanager stateless.
      Fix colorbar stealing from a single axes and with panchor=False.
      Tweak _ConverterError reporting.
      Replace "marker simplification" by "marker subsampling" in docs.
      Replace quiver dpi callback with reinit-on-dpi-changed.
      Fix pickling of globally available, dynamically generated norm classes.
      Remove some unnecessary extra boundaries for colorbars with extensions.
      Remove non-needed remove_text=False.
      Move towards having get_shared_{x,y}_axes return immutable views.
      Slightly simplify twin axes detection in MEP22 zoom.
      Improve usability of dviread.Text by third parties.
      Remove Forward definitions where possible.
      Small cleanups to mathtext.
      Tweak argument checking in tripcolor().
      Deprecate two-layered backend_pdf.Op enum.
      Remove support for IPython<4.
      Clarify logic for repl displayhook.
      Fix gtk4 incorrect import.
      Standardize creation of FigureManager from a given FigureCanvas class.
      Fix some possible encoding issues for non-utf8 systems.
      Specify that style files are utf-8.
      Suppress traceback chaining for tex subprocess failures.
      Suppress exception chaining in FontProperties.
      Factor out errorevery parsing for 2D and 3D errorbars.
      Demonstrate both usetex and non-usetex in demo_text_path.py.
      Cleanup Annotation.update_position.
      Backport PR #23051: Fix variable initialization due to jump bypassing it
      Slight refactor of _c_internal_utils to linewrap it better.
      Pathlibify autotools invocation in build.
      Slightly simplify tcl/tk load in extension.
      Fix width/height inversion in dviread debug helper.
      Normalize tk load failures to ImportErrors.
      Improve error for invalid format strings / mispelled data keys.
      Remove unneeded cutout for webagg in show().
      Remove custom backend_nbagg.show(), putting logic in manager show.
      Tweak check for IPython pylab mode. (#23097)
      Derive new_figure_manager from FigureCanvas.new_manager.
      Fix _g_sig_digits for value<0 and delta=0.
      Reuse subprocess_run_helper in test_pylab_integration.
      Restore accidentally removed pytest.ini and tests.py.
      Tweak subprocess_run_helper.
      No longer call draw_if_interactive in parasite_axes. (#23156)
      Simplify webagg blitting.
      Init FigureCanvasAgg._lastKey at class-level.
      Expire BoxStyle._Base deprecation.
      Remove *math* parameter of various mathtext internal APIs.
      Don't allow `r"$\left\\|\right.$"`, as in TeX.
      Small simplifications to mathtext tests.
      Support not embedding glyphs in svg mathtests.
      Add a helper to generate mathtext error strings.
      Simplify qt_compat, in particular post-removal of qt4 support.
      Private helper to get requested backend without triggering resolution.
      Fix handling of nonmath hyphens in mathtext.
      Support inverted parentheses in mathtext.
      In mathtext, replace manual caching (via `glyphd`) by lru_cache.
      Minor tweaks to pdf Name. (#23287)
      Properly make Name.hexify go through a deprecation cycle.
      Simplify definition of mathtext symbols.
      Simplify binary data handling in ps backend.
      Replace re.sub by the faster str.translate.
      No need to return OrderedDict from _gen_axes_spines.
      Tweak examples capitalization/punctuation.
      Cleanup FontProperties examples.
      Validate Text linespacing on input.
      Fix errorbar handling of nan.
      Remove now inexistent "datapath" rcParam from style blacklist.
      Remove ineffective exclusion of Arcs without parent Axes.
      Simplify/improve check for pycairo in Gtk-based backends.
      Support multi-figure MultiCursor; prepare improving its signature.
      Simplify FigureCanvas multiple inheritance init by swapping bases order.
      Shorten/clarify definition of extension types.
      Rename/change signature of PyGlyph_new.
      Small cleanups to animation.
      Default animation.convert_args to ["-layers", "OptimizePlus"].
      Add a helper to generate closed paths.
      Tweak mathtext/tex docs.
      Correctly end tokens in mathtext parsing.
      Make dotplus, dotminus binary operators.
      In the new/simplified backend API, don't customize draw_if_interactive.
      Link 3D animation examples to one another.
      Small cleanup to VertexSelector.
      Tweak pgf escapes.
      Help troubleshooting of latex failures.
      Deduplicate common parts in LatexManager.{__init__,_setup_latex_process}
      Compare thread native ids when checking whether running on main thread.
      Tweak callbacks to generate pick events.
      Set norms using scale names.
      Make it easier to improve UI event metadata.
      Deprecate macos close handler.
      Move emission of axes_enter/leave_event to a separate handler.
      Remove unneeded delayed super-inits.
      Move key/mouse dead reckoning to standard callbacks.
      Remove exception suppression in CloseEvent processing.
      Remove auto-call to canvas.draw_idle in ResizeEvent processing.
      Remove old handling for factor=None in axisartist.
      Display grid in floating axes example.
      Update filename in example. (#23466)
      Try running the pgf backend off the article class. (#23443)
      Tweak Axes repr.
      Inline _init_axis_artists & _init_gridlines into clear.
      Backport PR #23066: BLD: Define PyErr_SetFromWindowsErr on Cygwin.
      Fix direct instantiation of webagg_core managers.
      Fix outdated comment re: event handlers in test_backends_interactive.
      Move the common implementation of Axes.set_x/y/zscale to Axis.
      Let Axes.clear iterate over Axises.
      Clarify formatting of the code-for-reproduction field in bug reports.
      Move the deprecated RendererGTK{3,4}Cairo to a single place.
      Fix imprecise docs re: backend dependencies.
      Simplify impl. of functions optionally used as context managers.
      Uncamelcase offsetTrans in draw_path_collection.
      Remove noop setattr_cm.
      Move colorbar() doc to method itself.
      Cleanup parasite_simple example.
      Call apply_aspect just once per axes in _update_title_position.
      Shorten calls to apply_aspect using ternaries.
      Simplify _bind_draw_path_function.
      Remove unused fontsize argument from private mathtext _get_info.
      Simplify/fix save_diff_image.
      Small cleanups to _find_fonts_by_props.
      Deprecate `get_grid_positions(..., raw=True)`.
      Replace MathtextBackend mechanism.
      Harmonize docstrings for boxstyle/connectionstyle/arrowstyle.
      Backport PR #23782: Remove `Axes.cla` from examples
      Backport PR #23881: Fix Pillow compatibility in example

Biswapriyo Nath (1):
      Fix variable initialization due to jump bypassing it

Clément Phan (1):
      Clarify secondary-axis documentation

Connor Cozad (1):
      Additional details on VS install

Constantine Evans (1):
      Docs fix row/column in GridSpec height_ratios

Croadden (1):
      skip sub directories when finding fonts on windows

DWesl (2):
      BLD: Define an error function on Cygwin.
      BUG: Fix the returned value for PyErr_SetFromWindowsErr

Danilo Palumbo (1):
      [DOC]: Removed a redundant 'The' (#22406)

David Gilbertson (9):
      DOC fixed duplicate/wrong default
      DOCS Fix typos
      Update axes_grid.py
      Update tutorials/toolkits/axes_grid.py
      Update interactive_guide.rst
      DOCS remove duplicate text (#23149)
      Update artist.py (#23150)
      Fix typo in gradient_bar example
      DOC: Fix a few typos in fill_between_alpha example

David Ketcheson (1):
      Implement proposed enhancement from https://github.com/matplotlib/matplotlib/issues/8388.

David Matos (2):
      ignore >>> on code prompts
      DOC: add subplot-mosaic string compact notation (#23006)

David Poznik (5):
      Fix typo in `Path.__doc__`
      Improve `path.py` docstrings a bit
      Document `handleheight` parameter of `Legend` constructor
      Fix typo in `axhline` docstring
      Fix typo in `tutorials/intermediate/arranging_axes.py`

David Stansby (44):
      Redirect to new 3rd party packages page
      Separate tick and spine examples
      Use numpydoc for GridSpecFromSubplotSpec.__init__
      Don't add 1 to all hexbin data when using log norm
      Fix hexbin marginals
      Break links between twinned axes when removing
      Improve docs for to_jshtml()
      Clarify animation saving
      Place 3D contourfs midway between levels
      Document what indexing a GridSpec returns
      Add ability to scale BBox with just x or y values
      Re-order a widget test function
      Fix streamline plotting from upper edges of grid
      Add a PolygonSelector.verts setter
      Remove un-used variables
      Fix use_data_coordinates docstring
      Improve square state calculation in RectangleSelector
      Cleaner logic in _onmove
      Add a click_and_move widget test helper (#21780)
      Clarify coordinates for RectangleSelector properties (#21952)
      Add option of bounding box for PolygonSelector
      Run exising polygon selector tests with draw_box=True
      Add tests for polygon selector box
      draw_box > draw_bounding_box
      Fix changelog argument name
      Add some patch helper methods
      Validate text rotation in setter
      Improve autoscaling for high order Bezier curves
      Update pie test images
      De-duplicated mplot3D API docs
      Remove expired renderer arg deprecations
      Remove expired project argument
      Remove *args deprecations
      Remove renderer properties
      Remove un-used imports
      Fix example
      Use a fixture for widget test axes
      Make sure bounding box is drawn when setting .verts
      Add some tests for minspan{x,y} in RectangleSelector
      Disalbe showing cursor data on a QuadMesh by default
      Raise warnings and resmpale on large data to _image.resample
      Set min MacOSX req to 10.12
      Remove old compatability code in macosx
      Minor improvements to units_sample example

Davide Sandonà (1):
      Fixed typo in docs animation api

Diego Solano (1):
      Create animation.py

Dimitri Papadopoulos (1):
      Do not use mutables as default parameters

Dmitriy Fishman (2):
      Update coding_guide.rst
      Update fonts.rst (#21196)

Edouard Berthe (1):
      Fix typo

Elliott Sales de Andrade (285):
      Make streamplot test data rectangular.
      Add Python 3.10 testing.
      Add 3.10 to PyPI classifiers.
      Work around PySide2 incompatibility with Python 3.10.
      Ignore import warnings from gobject-introspection.
      Skip Sphinx tests if on Python 3.10.
      Ensure full environment is passed to headless test.
      Fix broken QApplication init in a test.
      Clean up some Event class docs.
      DOC: Apply suggestions from review.
      DOC: Add dates on all What's new pages
      DOC: Make API change note titles consistent.
      DOC: Add dates to GitHub statistics pages.
      DOC: Tweak section headings in release notes.
      DOC: Clean up general format of old changelog.
      DOC: Add missing GitHub statistics pages.
      Add a GTK4 backend.
      Move common GTK Backend code into a separate file.
      Combine common GTK timer code.
      Combine common GTK toolbar code.
      Clean up calls to Gtk.Window.set_icon_from_file.
      Add GTK4 to docs.
      Fix Ctrl+C out of IPython on GTK4.
      Skip Python 3.10 wheels on macOS.
      Build wheels for Apple Silicon.
      Remove generated file accidentally added in #20867
      Use correct DPI when drawing in Cairo renderers
      Set device pixel ratio when saving a figure
      De-duplicate some unit conversion in Cairo
      Use sysconfig directly instead of through distutils
      Cache build dependencies on Circle
      Add HiDPI support in GTK
      gtk3: Remove POINTER_MOTION_HINT_MASK usage entirely
      Calculate initial GTK window size using logical DPI
      Fix rubberband on Cairo
      Move sigint tests into subprocesses.
      Ensure test_fig_sigint_override cleans up global state.
      Fix a few minor typos
      Add a release mode for docs
      Check that the new sphinx theme is available early
      DOC: Disable extra plot formats if not release mode
      Update release guide with new release tag
      DOC: Set release mode when deploying devdocs only
      DOC: Always create HiDPI images
      Consolidate What's new for 3.5
      Consolidate development API changes for 3.5
      Consolidate API behaviour changes for 3.5
      Consolidate API removals for 3.5
      Consolidate API deprecations for 3.5
      Document API change in ContourSet
      Apply changes from review
      Clean up doc configuration slightly
      Re-wrap toplevel readme
      Fix links to doc sources
      DOC: Fix source links to prereleases
      Ensure internal FreeType uses same compiler as Python
      Use same host triplet for internal FreeType as Python
      DOC: Fix footnote that breaks PDF builds
      Ensure *full* compiler config is passed to FreeType
      Fix FreeType build PyPy
      DOC: Fix some lists in animation examples
      Allow macosx thread safety test on macOS11
      DOC: Bump to the sphinx-gallery release
      Fix snap argument to pcolormesh
      Disable blitting on GTK4 backends
      Pin macOS to 10.15 for wheels
      Use in-tree builds for PyPy wheels
      Update link to Agg website
      Convert macosx backend to use device_pixel_ratio
      GTK4: Fix forward application of set_size_inches
      Fix set_size_inches on HiDPI screens
      Enable Python 3.10 wheel building on all systems
      DOC: Fix selection of parameter names in HTML theme
      Rename has_curves to has_codes
      Dedent PathClipper implementation
      Save whether the last segment was valid in NaN remover
      Fix PathNanRemover for closed loops
      Close paths only if they haven't been clipped
      Fix some typos in examples
      Fix a possible crash when embedding in GTK
      Fix (uncatchable) traceback in GTK4 embedding example
      Make a super call more explicit in GTK Agg backends
      Fix interrupting GTK on plain Python
      Raise correct exception out of Spines.__getattr__
      Add more images and code samples to 3.5 What's new
      Document new wheels and build dependencies
      Document that the `mpl-data` directory is required
      Add backend-specific what's new entries for 3.5
      Add some more 3.5 what's new entries
      Fix some typos in 3.5 What's new
      Update QT_API envvar documentation
      Pin sphinx to fix sphinx-gallery
      Revert "Pin sphinx to fix sphinx-gallery"
      Fix GhostScript error handling types
      Fix compiler configuration priority for FreeType build
      Fix copyright date with SOURCE_DATE_EPOCH set
      Use standard subplot window in macosx backend
      DOC: Fix toplevel LaTeX/Texinfo document
      DOC: Make chapters appear in PDF table of contents
      Swap General and Tutorial/Example sections in User Guide
      Re-arrange installation doc layout
      Drop setuptools-scm requirement in wheels
      DOC: Use single column for multiple figures in examples
      Split apart figures in examples where possible
      Add note about interactivity to examples using it
      Split apart pick event demo
      Shrink Zoom Window to fit side-by-side in docs
      Verify that lib/src is not changed on -doc backports
      ci: Use released version to build v*-doc branches
      Make figure target links relative
      Drop retina images when building PDF docs
      Include test notebooks in test package
      Fix image testing decorator in pytest importlib mode
      Drop labelling from PR welcome action
      Merge branch v3.5.x into main
      Ensure log formatters use Unicode minus
      DOC: Fix upstream URL for merge in CircleCI
      DOC: Add hatch API to reference
      Bump minimum NumPy to 1.19
      Fix name typo in API changes
      Stop sorting artists in Figure Options dialog
      Run wheel builds on PRs when requested by a label
      Skip tests on the -doc branches
      Remove Axes sublist modification from docs
      Make bar of pie example more explicit
      Use latex as the program name for kpsewhich
      Disallow setuptools 60.6.0 on CI
      Disallow pip 22.0 on AppVeyor
      Fix pyzmq constraint on AppVeyor
      Pin coverage to fix CI
      Update SciPy doc reference path
      Simplify sphinx-gallery intersphinx config
      Drop support for Python 3.7
      Clean up NumPy dependencies in wheel CI
      Temporarily disable PyPy wheels
      Re-enable cibuildwheel on push
      Fix units in quick start example
      Really fix wheel building on CI
      Fix backend in matplotlibrc if unset in mplsetup.cfg
      Fix new leak in ft2font introduced in #22604
      Simplify FreeType version check to avoid packaging
      Fix deprecation of backend_tools.ToolBase.destroy
      Fix configure_subplots with tool manager
      Use system distutils instead of the setuptools copy
      Fix 'misspelled' transform variable
      Improve PDF font testing
      Only set Tk scaling-on-map for Windows systems
      BLD: bump branch away from tag
      DOC: Add Zenodo DOI for 3.5.2
      Add missing header in What's new for 3.5.2
      Skip additional backend tests on import error
      DOC: Fix charset declaration in redirects
      Fix missing section header for nightly builds
      Fix installing contourpy on CI
      Backport PR #23069: TST: forgive more failures on pyside2 / pyside6 cross imports
      Drop pytest warning config in nightly tests
      Tell Pytest to only look in `lib` by default
      Make module deprecation messages consistent
      Remove newline from start of deprecation warnings
      Unpin coverage again
      Deprecate passing most Legend arguments positionally (#23166)
      DOC: Migrate from sphinx-panels to sphinx-design
      DOC: Use sphinx-design's buttons
      DOC: Switch to html5 production
      DOC: Remove unused front page CSS
      Pin to an older pydata-sphinx-theme
      Drop CSS styles that are in mpl-sphinx-theme
      Don't draw invisible 3D Axes
      Revert "Try to unbreak CI by xfailing OSX Tk tests (#23095)"
      Switch to cibuildwheel GitHub Action
      Update cibuildwheel to 2.3.1
      Update to cibuildwheel 2.4.0
      Fix Windows build on setuptools that default to local distutils.
      Update to cibuildwheel 2.5.0
      Update to cibuildwheel 2.6.0
      Update to cibuildwheel 2.7.0
      Use tick_params more often over tick iteration
      Clean up formatting of custom cmap example
      Upload wheel artifacts from the correct directory
      Restore matplotlib.__doc__ in Sphinx docs
      DOC: Fix calculation of bin centers in multi-histogram
      TST: Add missing warning type to pytest.warns (#23407)
      Combine chunk size tests into one (#23413)
      DOC: numpydoc-ify date Locator classes (#23438)
      Backport PR #23476: FIX: reset to original DPI in getstate
      Pin setuptools_scm on v3.5.x (#23479)
      Add missing test data to install
      Use iterable unpacking for widget test event sequences
      Use mocks for widget test callbacks
      Parametrize widget selector tests
      Use ax fixture in more widget tests
      Make MultiCursor test more explicit
      Backport PR #23511: supporting IBM i OS
      Backport PR #23514: Fix doc build
      Backport PR #23514: Fix doc build
      Fix image thumbnail example
      Fix import in wx example
      Fix the Fourier in WX demo
      Fix deprecation warnings from GTK examples
      Remove function menu from wxGTK mathtext example
      Allow specifying a port in WebAgg example.
      Handle Ctrl+C gracefully in WebAgg example
      Remove extraneous returns
      Fix method subclassing inconsistencies
      Fix empty data statistics in boxplot_stats
      Remove several unused variables
      Actually use some unused variables
      Remove extra commented code
      Use _axis_method_wrapper for Axes3D.get_zscale
      Update example links
      Rename variables in example to be more generic
      Inline some code pointed out in review
      Remove transform arguments from _iter_collection
      Circle: Increase resource class to large
      Circle: Build docs in parallel.
      Don't clip colorbar dividers
      Fix colorbar dividers with explicit limits
      STY: Fix whitespace error from new flake8
      DOC: Update GitHub stats for 3.5.3
      DOC: Update release notes for 3.5.3
      REL: v3.5.3
      BLD: bump branch away from tag
      Migrate cibuildwheel workflow to macos-11
      DOC: Add Zenodo DOI for 3.5.3
      Avoid ax.texts in rotation demo
      Use subfigures for text rotation demo
      Avoid gridspec in more examples
      make.bat: Don't override SPHINXOPTS/O from the environment
      make.bat: Make default SPHINXOPTS match documentation
      DOC: Fix broken links and cross-references
      DOC: Add HTML5 doctype to redirect pages
      Fix links to rcParams sample matplotlibrc
      Enable wheels for PyPy 3.9
      Add eps to extension list in image triager
      Increase tolerance on multi-font tests
      Fix flake8 errors introduced by crossed PRs
      TST: Use article class when checking for pgf
      DOC: Update GitHub stats for 3.6.0rc1
      DOC: Update supported security releases
      REL: v3.6.0rc1
      BLD: bump branch away from tag
      DOC: Fix typos in GitHub stats
      Backport PR #23733: DOC: Update theme configuration for upcoming changes
      Backport PR #23639: Adding the new contributor meeting
      Backport PR #23674: Re-rename builtin seaborn styles to not include a dot.
      Backport PR #23735: Correctly handle Axes subclasses that override cla
      Backport PR #23750: Fix rcParams documentation
      Backport PR #23750: Fix rcParams documentation
      Backport PR #23750: Fix rcParams documentation
      Backport PR #23569: Fix hidden xlabel bug in colorbar
      DOC: Update GitHub stats for 3.6.0rc2
      REL: v3.6.0rc2
      BLD: bump branch away from tag
      Backport PR #23790: DOC: Add cache busting to all static assets
      Backport PR #23823: [DOC] Improve dev setup description
      Backport PR #23833: Remove search field from sidebar
      Backport PR #23830: Start testing on Python 3.11
      Consolidate development API changes for 3.6
      Consolidate API removals for 3.6
      Consolidate behavioural API changes for 3.6
      Consolidate API deprecations for 3.6
      Consolidate What's new for 3.6
      Add additional 3.6 What's new entries
      DOC: Add additional plots to 3.6 What's new
      Backport PR #23887: Add missing label argument to barh docs
      Backport PR #23892: DOC: Fix docs for linestyles in contour
      Remove redundant behaviour changes in 3.6
      DOC: Update GitHub stats for 3.6.0
      Pin to 3.6 version of mpl-sphinx-theme
      Update security policy
      DOC: Update version switcher
      DOC: Fix a typo in the what's new
      REL: v3.6.0
      BLD: bump branch away from tag
      DOC: Add Zenodo DOI for 3.6.0
      Backport PR #23947: Fix building on MINGW
      Backport PR #23964: Fix issue with empty line in ps backend
      Backport PR #24014: Bump pypa/cibuildwheel from 2.10.1 to 2.10.2
      Backport PR #24018: When comparing eps images, run ghostscript with -dEPSCrop.
      Backport PR #23684: Fix rectangle and hatches for colorbar
      Backport PR #24109: DOC: add API change note for colorbar deprecation
      Backport PR #24111: FIX: add missing method to ColormapRegistry
      DOC: Update GitHub stats for 3.6.1
      Update release notes for 3.6.1
      REL: v3.6.1

Eric Larson (9):
      BUG: Fix f_back is None handling
      DOC: Better doc of colors
      FIX: Better ref
      FIX: Better ref [skip actions] [skip azp]
      CI: Add concurrency skips for GH Actions
      TST: Try it
      FIX: No need for contents [skip actions] [skip azp]
      FIX: No title [skip actions] [skip azp]
      BUG: Fix regression with ls=(0, ())

Eric Prestat (46):
      Protect `Selector.artists` attribute
      Add `set_props` and `set_handle_props` to selectors.
      Fix deprecated attribute and add new feature entry
      Simplify access to selector artists
      Normalise kwargs when setting selector properties
      Apply suggestions from code review: improve normalisation kwargs
      Add api change note for the deprecation of line attribute of PolygonSelector.
      Simplify syntax and improve readability
      Fix clearing span selector
      Simplify reset _selection_completed after clearing selector and fix it for all selector
      Add clear method to selector
      Use release-branch version scheme when getting dev version of git repository
      Fix test clearing span selector
      Fix name coordinate handle: N and S were swapped
      Fix center modifier in interactive rectangle selector - in _onmove of existing shape
      Fix square modifier in interactive rectangle selector - in _onmove of existing shape, part 1, with centering on
      Fix square modifier in interactive rectangle selector - in _onmove of existing shape, part 2, with centering off
      Add comments and rename variable to a more explicit name
      Add method to add default state
      Privatize state_modifier_keys
      Take into account aspect ratio in square state
      Implement rotation selector
      Apply inverse transformation to event so that the onmove calculation are correct
      Fix shape rectangle when using rotation and the axes aspect ratio != 1
      Add what's new entry and fix linting
      Improve documentation, docstring and comments
      Make rectangle patch rotation point more generic
      Improve documentation
      Simplify state selectors and validate `rotation_point` attribute Rectangle patch
      Replace the `data_coordinates` state by the `use_data_coordinates` argument
      Improve documentation
      Improve documentation and syntax
      Fix drawing animated artists changed in selector callback
      Fix getting tuple of animated artists; add comments and test
      Use list comprehension instead of filter
      Fix z_order
      Improve docstring and add comments
      Add a polygon selector example showing how to set vertices programmatically and interactively
      Add snap to SpanSelector
      Add what's new entry
      Improve docstring and simplify code
      Deprecate visible setter of selectors in favour of get_visible/set_visible
      Add internal method to clear without update to simplify code
      Add workflow dispatch to test github workflow
      Add doc about triggering test workflow manually in fork repository
      Improve wording doc/devel/testing.rst

Felix Nößler (3):
      Add parameter documentation for MultiCursor (#21492)
      added parameter documentation for MultiCursor
      try to fix conflicts

Fernando (1):
      Fix medical image caption in tutorial

Gajendra Pal (1):
      FIX: Allow kwarg aliases in triplot

GavinZhang (1):
      supporting IBM i OS

Greg Lucas (84):
      ENH: Adding callbacks to Norms for update signals
      ENH: Adding zoom and pan to colorbar
      MAINT: Refactor zoom/pan code to use helpers
      MNT: Updating Colorbar zoom rectangle and selections
      TST: Adding interactive colorbar tests
      DOC: Updating API release note for colorbar interactivity
      FIX: Add cla() function to colorbar interactivity
      FIX: Allow colorbar zoom when the short-axis values are close
      DOC: Update interactive colormap example
      CI: Remove CI test runs from forks of matplotlib
      CI: Add color output to pytest
      FIX: Make sure a renderer gets attached to figure after draw
      FIX: Remove the deepcopy override from transforms
      MNT: Turn all macosx warnings into errors while building
      MNT: Add modifier key press handling to macosx backend
      FIX: macosx key-press key-release events
      MNT: Cleanup the logic in macosx keypress handling
      MNT: Change if blocks from negated OR to XOR and handle shift key
      DOC: Add macosx keypress events to the documentation
      CI: Disable numpy CPU features at runtime
      TST: Remove numpy cpu disabling from some subprocess tests
      Revert "CI: Disable numpy CPU features at runtime"
      Revert "TST: Remove numpy cpu disabling from some subprocess tests"
      TST: Increase some floating point datatypes and tolerances
      FIX: width/height were reversed in macosx rectangle creation
      FIX: Update macosx animation handling
      FIX: macosx check case-insensitive app name
      MNT: Deprecate cbook.maxdict
      TST: Add future dependency tests as a weekly CI job
      FIX: Include (0, 0) offsets in scatter autoscaling
      MNT: Use a context manager to change the norm in colorbar code
      FIX: Handle stopped animation figure resize
      TST: Add a frame test for animations
      FIX: Update blitting and drawing on the macosx backend
      FIX: Add a 0-length timer to allow fast animations to redraw on macosx
      ENH: add singleshot timer to macosx draw_idle
      TST: Test number of draw events from a blitted animation
      ENH: Add dark/light mode theme to the buttons
      FIX: Colorbars check for subplotspec attribute before using
      FIX: Change get_axis_map to axis_map now
      ENH: Use rcParams savefig.directory on macosx backend
      TST: macosx savefig respects rcParam setting
      FIX: Handle inverted colorbar axes with extensions
      FIX: Flush events after closing figures in macosx backend
      CI: Update weekly dependency test job
      MNT: Deprecate figure callbacks
      TST: Avoid floating point errors in asinh ticker
      ENH: Add option to disable raising the window for macosx
      ENH: Add full-screen toggle to the macosx backend
      FIX: Handle no-offsets in collection datalim
      MNT: Use get_offsets() to handle the default/None case
      MNT: Move set_cursor to the FigureCanvas
      TST: Add some tests for QuadMesh contains function
      MNT: Remove cmap_d colormap access
      MNT: Clean up macosx backend set_message
      FIX: Disable cursorRect updates from within macosx backend
      MNT: Remove dummy_threading because threading is always available
      MNT: Remove positional argument handling in LineCollection
      MNT: Remove key_press and button_press from FigureManager
      MNT: Remove deprecated axis.cla()
      MNT: Remove get/set window title methods from FigureCanvas
      MNT: Remove deprecated get_label_coords from contourLabeler
      MNT: Remove return_all kwarg from gridspec get_position
      MNT: Remove minimum_descent from TextArea
      MNT: Make optional parameters to Axes keyword only
      MNT: Remove the renamed parameter s to signal in callback registry
      MNT: Remove align from sphinxext.plot_directive
      MNT: Remove ability to pass URLs to imread()
      MNT: Remove network marker from pytest
      MNT: Remove deprecated widget properties
      MNT: Remove properties and methods from Subplot
      MNT: Remove keyword arguments to gca()
      MNT: Change objective C code to Automatic Reference Counting (ARC)
      FIX: QuantityND should return NotImplemented rather than raise
      FIX: Add unitless comparison operators to Quantity class
      MNT: Use UTF-8 string in macosx backend
      MNT: Remove cached renderer from figure
      Revert "MNT: Change objective C code to Automatic Reference Counting (ARC)"
      MNT: Deprecate macosx prepare subplots tool
      FIX: macosx flush_events should process all events
      Backport PR #23708: Loosen up test_Normalize test
      Backport PR #23712: FIX: do not try to help CPython with garbage collection
      Backport PR #23742: FIX: unbreak ipympl
      Backport PR #23785: FIX: ensure type stability for missing cmaps in `set_cmap`

Hansin Ahuja (1):
      FIX: Reset label of axis to center (#21773)

Harshal Prakash Patankar (1):
      (1) turn off the grid after creating colorbar axes (2) added a test

Hassan Kibirige (2):
      Fix path_effects to work on text with spaces only
      Make an empty path_effect path for an empty string

Haziq Khurshid (1):
      [Doc]: Document the position parameter in apply_aspect()

Hood (6):
      Fix method signatures in _path_wrapper.cpp
      Fix more method METH_VARARGS method signatures
      Fix some mistakes in _backend_agg_wrapper
      PyObject* kwds ==> PyObject *kwds
      Add missing paren
      Fix METH_NOARGS functions in _tri_wrapper.cpp too

Hood Chatham (2):
      Fix arguments of qhull version function to match expected METH_NOARGS signature
      Remove unneeded cast to PyCFunction

Ian Hunt-Isaak (5):
      Fix RangeSlider.reset
      Organize checklist in PR template
      Add pre-commit config and dev instructions
      move `_toolbar_2` from webagg_core to webagg
      add ipympl website links

Ian Thomas (2):
      Use contourpy for quad contour calculations
      Review comments

Isha Mehta (1):
      updated resources

Jake Bowhay (2):
      added to contour docs
      add test for hexbin linear

Jake Li (1):
      Co-authored-by: Neil Gurnani <ngur@umich.edu>

Jake Lishman (2):
      Reduce do_3d_projection deprecation warnings
      Add tests of do_3d_projection deprecation

Jake VanderPlas (1):
      BUG: fix handling of zero-dimensional arrays in cbook._reshape_2D

Jakub Klus (24):
      Fix typo in template of current dev-docs
      Add user supplied transforms and join/cap styles
      Avoid reinstanting MarkerStyle in lines.py
      Update  dosctring.
      Add marker.transformed + test
      Add affine transform primitives to markers
      Tweaking docstrings in MarkerStyle.
      Update MarkerStyle module documentation
      Update marker Reference documentation
      Add whats new for MarkerStyle features
      Add new example with advanced MarkerStyle mapping
      Fix errors discovered by CI
      Fix typo in markers api documentation.
      Improve test for invalid rotated inputs
      Add tests for MarkerStyle scaled and translated
      Add function for optimized None+transform
      Remove ambiguous translated primitive for MarkerStyle
      Add missing test for MarkerStyle.get_alt_transform
      Improve documentation outputs.
      Update docstrings according to jklymak
      Make MarkerStyle.rotated more concise
      Refactor code, linting.
      Rework get_cap(join)style, add tests
      Enable tests for text path based markers

James Tocknell (2):
      Add streamplot with broken_streamlines=False test
      Add what's new/example for no broken streamlines

Jan-Hendrik Müller (20):
      Rename to voxelarray
      new example for rcParams font
      apply black formatting
      rename file
      add redirect
      separate examples
      add brackets
      print available fonts
      fix fonts
      remove extra #
      add more detailed font overview
      adjust heading and remove second broken fontoverview example
      adjust heading
      Update examples/text_labels_and_annotations/font_family_rc.py
      apply code suggestions
      one more adjustment
      print defaults
      fix import
      fix flake8
      correct typo

Jay Joshi (1):
      Update lib/mpl_toolkits/mplot3d/axes3d.py

Jay Stanley (1):
      FIX: clearing subfigures

Jeff Beck (1):
      Fix polar() regression on second call failure

Jody Klymak (143):
      FIX: remove colorbar from list of colorbars on axes if colorbar is removed
      TST: test remove colorbar with CL
      FIX: colorbar with boundary norm, proportional, extend
      FIX: Don't subslice lines if non-standar transform
      TST: add test for no subslice if we have a non-standard transform
      DOC: clarify what we mean by object oriented
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp]
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      DOC: remove test from README.rst
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      DOC: move usage tutorial info to Users guide rst [skip actions] [skip azp] [skip appveyor]
      FIX: logic of title repositioning
      FIX: better error message for shared axes and axis('equal')
      TST: add test for error
      DOC: more site re-org
      DOC: more subdirectories
      DOC: update documenting_mpl.rst
      MNT: rebase new getting started page
      MNT: rebase new getting started page [skip appveyor] [skip actions] [skip azp]
      MNT: Map just one level deep [skip appveyor] [skip actions] [skip azp]
      DOC: fix re-org after rebase
      DOC: organize TOC
      MNT: pin pyparsing
      MNT: pin pyparsing
      DOC: use mpl-sphinx-theme
      DOC: add documentation of mpl-sphix-theme to documenting_mpl
      MNT: update environments.yml
      FIX: re-instate ability to have position in axes
      FIX: spanning subfigures
      FIX: process list of lists for eventplot
      DOC: link to cheatsheets site, not github repo
      DOC: remove sample_plots from tutorials
      FIX
      FIX: don't double transpose xy for add-lines colorbar
      TST: add contour tests for horiz and vertical
      FIX: mapping for uniform-spaced boundaries on colorbars
      FIX: remove extra try/except
      DOC: fix inaccuracy in colormap tutorial
      DOC: modernize gridspec tutorial
      FIX: align_x/ylabels
      FIX: manual colorbars and tight layout
      DOC: minor edits
      DOC: fix missing ref
      FIX: label offset on zoom
      TST: add a test for changing offset
      DOC: some minor fixes to the usage rewrite
      DOC: add show to each example
      DOC: suppress extra prints
      FIX: tightbbox and subfigures
      Fix collections coerce float (#21818)
      Make boundaries work again
      DOC: update anatomy of figure
      MNT: deprecate filled parameter to colorbar
      Deprecate colorbar.draw_all.
      DOC: fix interactive to not put Event Handling and Interactive Guide in the Interactive doc
      DOC: explain too many ticks
      DOC: artist extent
      DOC: remove experimental tag from CL
      FIX: squash memory leak in colorbar
      Fix list creation
      DOC: rename usage tutorial to quick_start
      Update doc/users/faq/howto_faq.rst
      Apply suggestions from code review
      FIX: streamline examples
      FIX: accomodate pandas type that doesn't return numpy from .values
      FIX: better repr for subgridspecs
      FIX: add test for identical subgridspec
      FIX
      DOC: add new example
      Update doc/users/faq/howto_faq.rst
      Apply suggestions from code review
      ENH: implement and use base layout_engine for more flexible layout.
      DOC: add dropdown
      DOC: add dropdown
      Fix topbar
      DOC: Add all the releases
      DOC: update release_guide
      DOC: rename versions [skip azp] [skip appveyor] [skip actions]
      BLD: pin sphinx data theme [skip actions] [skip appveyor] [skip azp]
      DOC: fix version switcher json [skip actions] [skip appveyor] [skip azp]
      DOC: fix version switcher [skip actions] [skip appveyor] [skip azp]
      FIX
      MNT: make colorbars locators and formatters properties
      TST: test setters and getters in colorbar
      DOC: improve crosslinking for docs
      FIX: small fixes
      DOC: fix property docstrings
      FIX: minorformatter None
      DOC: attempt to explain the main different APIs
      FIX: use window_extent instead
      Apply suggestions from code review
      FIX: more holistic fix
      MNT: make layout deprecations pending
      FIX
      DOC: add api change
      DOC
      TST: fix tests [skip azure] [skip actions] [skip azp]
      DOC: put the gallery keywords in the meta tag [skip actions] [skip azp] [skip appveyor]
      FIX: simplify a bit more
      DOC: remove all keywords except codex
      FIX: fix offset text for vertical colorbars
      FIX: ax
      FIX: completely remove QuadMesh cursor data
      FIX: re-add get_cursor_data now that mouseover is set to False by default
      DOC: adjust behavior message
      DOC: set canonical
      DOC: fix version switcher json [skip actions] [skip appveyor] [skip azp]
      FIX: maybe improve renderer dance
      ENH: add rect parameter to constrained_layout
      FIX: callback for subfigure uses parent
      FIX: fix check_1d to also check for ndim
      Backport PR #23115: DOC fixed duplicate/wrong default
      Backport PR #23115: DOC fixed duplicate/wrong default
      ENH: simple compressed layout
      ENH: update ticks when requesting labels
      TST: simple test
      DOC: add change note
      MNT: change default dates to 1970-01-01 to -02
      TST: fix the tests
      DOC: add behavior change
      MNT: make renderer always optional
      DOC: link the trasnforms tutorial from the module
      Backport PR #23144: Only import setuptools_scm when we are in a matplotlib git repo
      ENH: add width_ratios and height_ratios to subplots
      DOC: improve spines crosslinking [skip-actions] [skip-azure] [skip-appveyor]
      DOC/MNT install docs with dev version of sphinx theme
      FIX: add theme-switcher
      fix grid cards on front page?
      fix grid cards on front page? [skip-actions], [skip-azp] [skip-appveyor]
      STY: make the background of sg thumbs dark in dark mode
      FIX: fix styling of donate button
      MNT: use devel version of theme [skip actions] [skip azp] [skip appveyor]
      MNT: use devel version of theme [skip actions] [skip azp] [skip appveyor]
      DOC: add new showcase example, replace gendered one [skip actions] [skip azp] [skip appveyor]
      DOC: add data source to csv
      Backport PR #23523: TST: Update Quantity test class
      Backport PR #23862: Remove triggering of deprecation warning in AnchoredEllipse
      Merge pull request #23949 from timhoffm/version-switcher-dev
      Backport PR #23987: FIX: do not set constrained layout on false-y values
      Backport PR #24084: Revert argument checking for label_mode

Joel Frederico (3):
      Set icon properly for macOS
      Set the app icon in the MacOsX manager
      Apply changes from review

Josh Soref (2):
      Fix spelling errors
      DEV: ignore spelling fixes

Jouni K. Seppänen (3):
      Try to install the Noto Sans CJK font
      Improve the Type-1 font parsing
      Recognize abbreviations of PostScript code

KIU Shueng Chuan (1):
      skip QImage leak workaround for PySide2 >= 5.12

Kayran Schmidt (2):
      Fix BoundaryNorm cursor data output (#22835)
      Backport PR #22835: Fix BoundaryNorm cursor data output

Kian Eliasi (1):
      Fix pan/zoom crashing when widget lock is unavailable (#23373)

Kinshuk Dua (5):
      Add support to save images in WebP format
      Add tests for WebP format
      Fix linting errors in test_agg.py
      remove dpi pil_kwarg from print_webp
      Make Line2D copy its inputs

Leeh Peter (1):
      support for back/forward mouse buttons with WX backend

Liam Toney (2):
      Use correct confidence interval
      Change other place where incorrect value appears

Lucas Ricci (1):
      Changing environment.yml for it to work on Windows

Luke Davis (1):
      Speedup get_tightbbox() for non-rectilinear axes

MAKOMO (1):
      adds _enum qualifier for QColorDialog.ShowAlphaChannel

MalikIdreesHasa (2):
      Fixed typos
      Undid external fix.

Marcin Swaltek (1):
      warning when scatter plot color settings discarded (#23516)

Mario Sergio Valdés Tresanco (1):
      Improve bar_label annotation (#22447)

Matthew Feickert (25):
      CI: Add nightly upload of wheels to Anaconda Cloud
      DOC: Add instructions on installing nightly build wheels
      DOC: Correct nightly wheels pip install command
      MNT: Skip existing wheels during nightly wheel upload
      MNT: Pin anaconda-client to latest known working commit
      DEV: Exclude LICENSE files from pre-commit
      MNT: Update pre-commit hooks to latest versions
      STY: Apply end-of-file-fixer pre-commit hook
      STY: Apply trailing-whitespace pre-commit hook
      STY: Apply check-docstring-first pre-commit hook
      DEV: Add .git-blame-ignore-revs to ignore style in blame view
      DOC: Add pre-commit hook run dev instructions
      DEV: Add codespell to pre-commit hooks
      FIX: Fix typo caught by codespell pre-commit hook
      STY: Fix typos in colormap
      CI: Add trivial pre-commit.ci config to avoid CI failure
      CI: Add trivial pre-commit.ci config to avoid CI failure
      MNT: Rename example files with 'test' in name
      MNT: Update 'pre-commit-hooks' pre-commit hook to v4.3.0
      DEV: Add name-tests-test to pre-commit hooks
      MNT: Use '--pytest-test-first' option for naming clarity
      CI: Remove old scipy-wheels-nightly uploads to ensure space
      BLD: Add Python 3.11 builds to CI
      CI: Use anaconda-client v1.10.0 for upload
      CI: Print the version of nightly package being removed

Matthias Bussonnier (6):
      Do not use space in directive calling.
      Fix capitalisation
      DOC: Misc rst syntax fixes
      DOC: git:// is deprecated.
      DOC: imbalanced backticks.
      DOC: remove space in directive.

MeeseeksMachine (7):
      Backport PR #23834: Revert "Refactor handling of tick and ticklabel visiblity in Axis.clear" (#23838)
      Backport PR #23840: Remove documentation for axes_grid (#23842)
      Backport PR #23843: Clarify that pycairo>=1.14.0 is needed. (#23848)
      Backport PR #23852: Fix cross-compiling internal freetype (#23854)
      Backport PR #23844: Further improve dev setup instructions (#23859)
      Backport PR #23855: DOC: fix deprecation warnings (#23858)
      Backport PR #23841: clarified that hist computes histogram on unbinned data (#23877)

Mr-Milk (1):
      ENH: add the ability to control label alignment in legends

Navid C. Constantinou (2):
      fix default value for `shading` in docstring
      default shading is :rc:`pcolor.shading`

Nickolaos Giannatos (4):
      Add self.alpha to PathPatch creation in _do_extends method
      Remove redundant copying of baseline image
      Change documentation
      Improve documentation in test_image_comparison_expect_rms method

Nicolas P. Rougier (1):
      Added my (open access) book (#23161)

Niyas Sait (11):
      Enable windows arm64 targets
      refactor to skip codecov
      fix linting errors
      revert changes in lib/matplotlib/__init__.py
      Update setupext.py
      Minor clean up to keep the line length bit short
      restore empty line missed in __init__.py
      minor refactoring
      Minor clean up and refactoring for freetype lib finding part
      remove next and do a simple list unpacking
      fix line length: keep < 79 char

Olivier Gauthé (1):
      fix method name in doc

Oscar Gustafsson (157):
      Added color keyword argument to math_to_image
      Added keyword-only argument
      Fixed review comments
      Fixed another review comment and extended explanation
      Update doc/users/next_whats_new/color_support_for_math_to_image.rst
      Right-aligned status text in backends
      Expire mathttext-related deprecations
      Fixed review comments and a few more removals
      Started deprecating afm, fontconfig_pattern, and type1font
      Started deprecating tight_bbox and tight_layout
      Recreated deprecated files and changed references
      Improved coverage of mathtext and removed unused code
      Removed unused variables etc.
      Passed on sides and pad_to
      Removed dev from 3.10-version
      Increased coverage for dates and fixed bug
      Recreated deprecated files and changed references
      All classes and methods in dates support both string and tzinfo as tz-argument
      Fixed repr for SecondaryAxis
      Apply suggestions from code review
      Removed unused code
      Added tests for ContourSet.legend_elements
      Deprecated is_decade and is_close_to_int
      Remove deprecated Moviewriter.cleanup
      Remove support for shade=None
      Change default of auto_add_to_figure
      Remove redundant rcParam-lookup
      Increase coverage
      Expire deprecations in lines and patches
      Fix issue with manual clabel
      Cleanup unused imports and variables in backends (#…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants