Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Matplotlib: August 18, 2025 - August 25, 2025 (12:04:41)

Weekly GitHub Report for Matplotlib

Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.


Table of Contents

  • I. News
    • 1.1. Recent Version Releases
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

I. News

1.1 Recent Version Releases:

The current version of this repository is v3.10.1

1.2 Version Information:

Released on February 27, 2025, this first bugfix update of the 3.10.x series addresses multiple issues including improved handling of array alpha in interpolation, removal of md5 to support FIPS compliance, fixes for pyplot.matshow and Axes positioning, adjustments to polar plot titles, and added version gating for GTK4 calls, alongside enhanced documentation. Notably, it also introduces a warning when both color parameters are used in scatter plots, reflecting a focus on stability and user guidance.

II. Issues

2.1 Top 5 Active Issues:

We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.

  1. [ENH]: Add OrientedRectangleSelector (interactive rotated rectangle selector): This issue proposes adding a new interactive widget called OrientedRectangleSelector to Matplotlib, which extends the existing RectangleSelector by supporting rotated rectangles with features like resizing, rotating with angle snapping, and translating. The goal is to provide a consistent and user-friendly tool for domains requiring oriented bounding boxes, improving on current workarounds that rely on polygon selectors or custom handlers.

    • The single comment references a related existing pull request that implements rotation for the RectangleSelector, indicating awareness of prior work but no further discussion or feedback was provided in the thread.
    • Number of comments this week: 1

Since there were fewer than 5 open issues, all of the open issues have been listed above.

2.2 Top 5 Stale Issues:

We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.

  1. [Bug]: Misalignment of Labels and Incorrect Density Values in ax.hist() for Categorical Variables: This issue addresses a bug in the ax.hist() function when used with categorical variables and the density=True parameter, where the density values are incorrectly computed due to the internal conversion of categories to integers and the resulting bin widths not being equal to one. Additionally, the issue highlights a misalignment of x-axis labels because the function does not clearly document or handle the mapping from categories to integers, making it difficult to position labels accurately at the center of the histogram bars.
  2. [MNT]: Ease building just one Sphinx Gallery example file: This issue addresses the difficulty of efficiently building a single Sphinx Gallery example file, which currently requires lengthy build times or manual configuration changes that are not straightforward. The author proposes improving documentation with practical tips and adding a dedicated build target in the Makefile to streamline this process, making it easier for developers—especially beginners—to preview and develop individual gallery examples.
  3. [ENH]: Parse "\limits" in mathtext: This issue addresses a problem in the matplotlib mathtext module where the LaTeX command "\limits" is not recognized and causes a parsing error when rendering mathematical expressions involving integrals. The user reports that including "\limits" in an integral expression results in a ValueError due to an unknown symbol, whereas the expected behavior is for the subscripts and superscripts to be displayed above and below the integral sign as specified by the command.
  4. [ENH]: Fix precision displayed by LogFormatter.format_data_short: This issue addresses the lack of precision adjustment in the display of mouse cursor values for logarithmic scale formatters within the toolbar, which currently only exists for linear scale formatters. The request is to enhance the LogFormatter.format_data_short method so that it matches the cursor pointing precision, similar to the improvements made in previous related issues.
  5. [Bug]: ax.transData does not honor data limits: This issue reports a bug in Matplotlib where the transformation ax.transData does not respect the current data limits set by xlim and ylim, causing it to use outdated data limits when transforming coordinates. The user highlights that although the documentation implies data limits update automatically with new data, in practice, manual calls to methods like set_xlim or set_ylim are required to refresh these limits, leading to confusion and inconsistent behavior.

2.3 Open Issues

This section lists, groups, and then summarizes issues that were created within the last week in the repository.

Issues Opened This Week: 1

Summarized Issues:

  • Interactive Rectangle Selection Enhancements: This issue proposes the addition of a new interactive Matplotlib widget called OrientedRectangleSelector that allows users to create, resize, rotate, and translate arbitrarily rotated rectangles. It addresses the limitation of the existing RectangleSelector, which only supports axis-aligned rectangles, by adding features like angle snapping, live callbacks, and visual handles for better user interaction.
  • issues/30442

2.4 Closed Issues

This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.

Issues Closed This Week: 4

Summarized Issues:

  • Documentation clarity on font size values: This issue highlights the need for clearer documentation regarding relative font size values in Matplotlib, including a detailed list of supported size strings and their scaling factors. It also proposes deprecating the confusing terms smaller and larger in favor of small and large to improve user understanding.
  • issues/30437
  • Type stub inaccuracies for colormaps: The problem involves missing definitions in the type stub file for matplotlib.pyplot.cm, which causes type checkers like mypy to report errors when accessing dynamically created colormap attributes such as plt.cm.gray. The discussion includes possible fixes like hardcoding colormap names in the stub file to resolve these type checking issues.
  • issues/30438
  • Configuration directory error handling: This bug causes a RuntimeError when the user's home directory cannot be determined, as the configuration directory location finder fails instead of defaulting to a temporary directory. The issue calls for more graceful handling to avoid crashes and ensure proper caching and configuration.
  • issues/30449
  • Embedding figure objects in PNG files: This feature proposal suggests embedding a serialized matplotlib.figure.Figure object directly into a PNG file to allow later extraction and editing without the original source code. This would enhance reproducibility and collaboration while maintaining compatibility with standard image viewers.
  • issues/30450

2.5 Issue Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.


III. Pull Requests

3.1 Open Pull Requests

This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Opened This Week: 3

Key Open Pull Requests

1. doc: factor out quick install tab for reuse: This pull request refactors the documentation by extracting the quick install instructions tab into a standalone file that is then included across multiple pages to ensure consistent installation guidance throughout the docs.

  • URL: pull/30451
  • Merged: No
  • Associated Commits: 503a4

2. Add example: pixel grid overlay on image: This pull request adds a new example script called pixel_grid.py that demonstrates how to overlay a pixel-aligned grid on an image using Matplotlib, providing a simple, self-contained tool useful for visual localization, educational purposes, and image analysis.

  • URL: pull/30457
  • Merged: No
  • Associated Commits: bfc0a

3. DOC: simplify hat graph example: This pull request simplifies the hat graph example in the documentation by replacing bespoke logic with the use of grouped_bar and bar_label functions to improve clarity and maintainability.

  • URL: pull/30459
  • Merged: No
  • Associated Commits: 909a9

3.2 Closed Pull Requests

This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Closed This Week: 18

Key Closed Pull Requests

1. merge up v3.10.5: This pull request merges various backported fixes, documentation improvements, test updates, and build enhancements into the v3.10.5 release branch of Matplotlib, including bug fixes for plotting behavior, CI adjustments, backend support improvements, and release preparations for Python 3.14 and Windows ARM.

  • URL: pull/30401
  • Merged: 2025-08-21T21:23:40Z
  • Associated Commits: d0829, 69cc6, e9c02, 44c23, 9e38a, 28273, 16cf9, 4ecba, e751c, 2dd5e, e4627, 97516, 8c9c1, ba89f, 8b1a7, 1316b, ac2a2

2. {Check,Radio}Buttons: Improve docs of label_props: This pull request improves the documentation of the label_props parameter for CheckButtons and RadioButtons in Matplotlib, addressing part of issue #30393 by providing clearer and more consistent API documentation.

  • URL: pull/30412
  • Merged: 2025-08-20T06:35:06Z
  • Associated Commits: 95c4d, f7376, 2e10b

3. Add scroll capture functionality to WebAgg backend: This pull request adds a new feature to the WebAgg backend of Matplotlib that enables setting whether a figure should capture and prevent the default behavior of scroll events, allowing finer control over scroll interactions in web-based plots.

  • URL: pull/30403
  • Merged: 2025-08-21T18:47:01Z
  • Associated Commits: baa22, e7219

Other Closed Pull Requests

  • Font size and font manager improvements: These pull requests document valid values and scaling factors for relative font sizes while removing undocumented keywords, and fix the font manager's cache rebuilding logic to allow forced cache rebuilds when fallback is disabled. Together, they enhance font handling robustness and clarity in the project.
    [pull/30440, pull/30406]
  • Race condition fixes in TexManager: These pull requests backport fixes for race conditions in the TexManager's make_dvi and make_png methods, including a correction to retain the dpi value in generated PNG filenames. These changes improve stability and correctness in TeX rendering on the v3.10.x branch.
    [pull/30430, pull/30434]
  • Documentation corrections and enhancements: Multiple pull requests address documentation improvements, including fixing typos such as "axis" vs "axes," enhancing Getting Started guidance with virtual environment recommendations and better examples, and clarifying missing documentation references. These updates improve user understanding and reduce confusion.
    [pull/30444, pull/30445, pull/30447, pull/30452, pull/30453, pull/30455]
  • Backports of documentation and feature improvements: These pull requests backport improvements to the label_props parameter documentation for CheckButtons and RadioButtons, as well as typo corrections in galleries, ensuring consistency and quality in the v3.10.x branch.
    [pull/30448, pull/30445]
  • Handling of user environment and caching: One pull request improves robustness by handling cases where the user's home directory cannot be determined, defaulting to a temporary directory for caching and issuing a warning to avoid runtime errors. Another moves a "capture_scroll" note in the What's New documentation to a new release directory to align with structural changes.
    [pull/30454, pull/30452]
  • Static typing support for colormaps: A pull request adds hardcoded attributes for named colormaps to the cm.pyi stub file, enabling static type checkers like mypy to recognize colormap availability and resolve type errors caused by runtime injection.
    [pull/30446]
  • Unmerged feature proposal: One pull request proposes a new feature or component named "izba," but it was not merged into the main project.
    [pull/30443]

3.3 Pull Request Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.


IV. Contributors

4.1 Contributors

Active Contributors:

We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.

If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.

Contributor Commits Pull Requests Issues Comments
timhoffm 14 4 2 52
QuLogic 7 3 1 29
anntzer 11 3 0 12
rcomer 2 1 1 19
ksunden 18 2 0 1
story645 1 1 0 19
tacaswell 7 1 1 11
AndrGutierrez 16 1 0 0
dstansby 8 2 1 5
doronbehar 5 1 1 5

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.