Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Matplotlib: September 22, 2025 - September 29, 2025 (12:04:40)

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 image interpolation, removal of md5 to support FIPS-enabled systems, fixes for pyplot.matshow and polar plot titles, and added warnings for scatter plot color usage, alongside various documentation enhancements.

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. [MNT]: black version: This issue addresses a problem with the version of the code formatter Black installed in a newly created development environment using Python 3.13, where the outdated Black version 19.3b0 causes failures in the boilerplate.py script. The user suggests updating the Black version pin because versions 20-23 are incompatible with Python 3.13, and the current pin to versions below 24 is causing the problem.

    • The comments clarify that Black is used specifically to format pyplot.py and that using an incompatible Black version leads to test failures. There is also a suggestion to consider switching to the Ruff formatter, which is already used elsewhere in the project, but the immediate solution is to apply the quick fix of bumping the Black version as proposed.
    • Number of comments this week: 3
  2. [ENH]: Scrollable Sliders: This issue proposes enhancing sliders by making them scrollable in a stepwise manner to improve user experience, as clicking to select values can be frustrating due to unexpected thumb jumps or immobility depending on click position and step size. The user has provided a video example demonstrating the proposed solution and suggests that incremental scrolling would allow for more reliable and precise value selection.

    • The comment acknowledges recent similar improvements involving scroll wheel behavior and expresses support for the proposed enhancement, encouraging the user to submit a pull request for further review.
    • 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 of Matplotlib 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 1. Additionally, the issue highlights a misalignment problem where the x-axis labels are not centered on the bars, compounded by a lack of clear documentation on how categories are mapped to integers, making it difficult to correctly position the labels.
  2. [MNT]: Ease building just one Sphinx Gallery example file: This issue addresses the difficulty and inefficiency of building a single Sphinx Gallery example file, which currently requires long build times or manual edits that still produce many warnings. The author proposes improving the documentation with practical tips and adjusting the Sphinx Gallery configuration to streamline this process, making it easier for developers—especially beginners—to quickly 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 leads to a ValueError and ParseFatalException, whereas the expected behavior is for the subscripts and superscripts to be displayed above and below the integral symbol as intended in LaTeX.
  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 user suggests implementing a similar feature for log formatters to match the cursor pointing precision, enhancing the accuracy of displayed data values.
  5. [Bug]: ax.transData does not honor data limits: This issue reports that the ax.transData transformation in Matplotlib does not automatically respect the current data limits (xlim and ylim), causing it to use outdated limits when transforming data coordinates. The user highlights that although the documentation implies data limits update automatically when new data is added, in practice, manual calls to methods like set_xlim or set_ylim are required to refresh these limits, leading to confusion and unexpected 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: 3

Summarized Issues:

  • User Interface Improvements: This topic covers enhancements aimed at improving user interaction with matplotlib components. One issue proposes making sliders scrollable in a stepwise manner to allow incremental and reliable value selection, addressing frustrations caused by clicking directly on the slider thumb which can cause unexpected jumps or no movement. Another issue requests adding the ability to set the legend's number of columns via mplstyle files to customize legend appearance more flexibly.
  • [issues/30602, issues/30604]
  • Dependency and Compatibility Updates: This topic involves updating dependencies to maintain compatibility with newer Python versions. Specifically, the project currently uses an outdated Black formatter version (19.3b0) incompatible with Python 3.13, causing failures in boilerplate.py, and proposes updating the Black version pin to a newer release that supports Python 3.13.
  • [issues/30611]

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: 2

Summarized Issues:

  • Backend compatibility and crashes: Matplotlib version 3.10.6 experiences segmentation faults on Linux when using the default gtk4agg backend due to missing or incomplete GTK4 components, while earlier versions or alternative backends like TkAgg do not exhibit this issue. This indicates a problem with backend detection and fallback mechanisms in version 3.10.6 that affects stability on certain systems.
  • issues/30592
  • Locale support for formatting: There is a request to enhance Matplotlib to fully support global locale settings for all visual elements, including titles, labels, ticks, and text. This would allow number formatting such as decimal and thousands separators to automatically adapt to the locale without requiring manual adjustments.
  • issues/30601

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: 9

Key Open Pull Requests

1. Implement warning for Text3D's rotation/rotation_mode parameters: This pull request adds a warning to inform users that the rotation and rotation_mode parameters of the Text3D class are currently ignored and unimplemented, clarifying their non-functionality to prevent confusion while true 3D text rotation remains unaddressed.

  • URL: pull/30600
  • Merged: No
  • Associated Commits: c64c8, 2291a, c8d40, 815dc

2. Implement libraqm for vector outputs: This pull request implements the use of the libraqm library for text layout in vector output backends of the project, following up on previous work done for raster backends, and includes additions such as a font feature API and a wrapper for layouting to improve text rendering accuracy despite minor kerning calculation differences.

  • URL: pull/30607
  • Merged: No
  • Associated Commits: d3cc8, 062b1, 8a4d6, 14091

3. Prepare CharacterTracker for advanced font features: This pull request improves the CharacterTracker in the Matplotlib PDF backend to better handle advanced font features by mapping character codes and glyph indices to subset indices and character codes, thereby addressing issues with multiple glyphs per character, multiple characters per glyph (such as ligatures and complex text shaping), and reducing the number of sparsely populated font subsets when characters span various font blocks.

  • URL: pull/30608
  • Merged: No
  • Associated Commits: 5afd7, f0666, 53093, 5e893

Other Open Pull Requests

  • Multivariate plotting support in top-level functions: This pull request exposes multivariate plotting functionality of MultiNorm, BivarColormap, and MultivarColormap to the top-level Matplotlib plotting functions ax.imshow(), ax.pcolor(), and ax.pcolormesh(). It also extends this capability to Collection objects as a side effect, enabling easier visualization of multivariate data.
  • pull/30597
  • SVG export improvements: This pull request proposes a preliminary solution to export SVG elements more concisely by addressing limitations of converting all elements to paths. It introduces alternative methods to handle stroke scaling and transformations, improving SVG output quality while acknowledging existing restrictions and the need for further refinement.
  • pull/30598
  • Device scaling fix on Windows: This pull request fixes the issue of device scaling on Windows by ensuring DPI changes are detected and handled during resizing or device scale changes rather than only at canvas launch. This resolves the scaling problem described in issue #26733.
  • pull/30599
  • Dynamic useblit property for Widgets: This pull request makes the useblit attribute a dynamic property across all Widget classes to prevent blitting attempts when a figure is closed and the canvas is swapped to one that does not support blitting. It addresses issue #30575 as a partial solution to broader blitting and canvas-changing problems.
  • pull/30605
  • Theme update for documentation: This pull request updates the mpl-sphinx-theme to a new release version, removing the need to pin the pydata-sphinx-theme separately since it is now managed within the mpl-sphinx-theme itself. This simplifies theme management for the documentation.
  • pull/30610
  • Code formatter Black version update: This pull request updates the pinned version of the code formatter Black to address issue #30611, ensuring compatibility and maintaining code quality in the Matplotlib project.
  • pull/30612

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: 6

Key Closed Pull Requests

1. Trigger CI: This pull request attempts to trigger continuous integration (CI) workflows by making test runs in GitHub Actions, as indicated by the commit messages and the title "Trigger CI."

  • URL: pull/30609
  • Merged: No
  • Associated Commits: d6eb0, 43ad5, b824a

2. replace data1, data2, data3 by X, Y, Z: This pull request proposes replacing the variables data1, data2, and data3 with X, Y, and Z in code snippets from the quick start guide to improve consistency and ensure the snippets work immediately when copied.

  • URL: pull/30593
  • Merged: No
  • Associated Commits: ae95c

3. ft2font: Split layouting from set_text: This pull request refactors the ft2font module by separating the text layouting functionality from the set_text method, enabling the layouting to be used independently, including on PS/PDF backends where no rendering occurs.

  • URL: pull/30595
  • Merged: Yes
  • Associated Commits: b35e5

Other Closed Pull Requests

  • Code quality improvements: These pull requests focus on cleaning up example code to enhance readability and maintainability. The changes improve the clarity of the donuts example in the Matplotlib project, making it easier for contributors to understand and work with the code.
  • pull/30596
  • Deprecation fixes: These pull requests address issues related to broken deprecations by adding missing version information and correcting style registration details. The fixes ensure that deprecations are properly handled and that versioning is accurate without including micro versions.
  • pull/30603
  • Documentation corrections: These pull requests fix typos and errors in documentation to prevent user confusion and runtime errors. Specifically, they remove incorrect raw string prefixes in Unicode examples to ensure proper parsing and avoid crashes when copying and pasting tutorial content.
  • pull/30606

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
QuLogic 53 11 1 51
timhoffm 39 7 7 60
melwyncarlo 25 5 2 16
LangQi99 19 3 4 20
tacaswell 18 1 1 20
anntzer 6 2 4 11
trygvrad 7 2 4 9
rcomer 6 1 2 6
ksunden 14 0 0 0
dstansby 9 2 1 1

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