Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Matplotlib: September 29, 2025 - October 06, 2025 (12:05:04)

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, GTK4 version gating, and warnings for conflicting scatter plot color parameters, 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. [ENH]: pyparsing 3.3.0a1 deprecation warnings: This issue reports multiple deprecation warnings triggered by the use of pyparsing 3.3.0a1 in matplotlib version 3.10.6, specifically related to outdated method names in the _fontconfig_pattern.py file. The discussion centers on how to address these warnings, debating whether to backport fixes, cap the pyparsing version, or delay pyparsing updates until after the next matplotlib release.

    • The comments reveal that a fix was merged but not backported to 3.10.6, prompting a backport PR; there is concern about dependency resolution and whether capping pyparsing versions might cause users to install older matplotlib versions. The conversation also touches on challenges with packaging metadata and suggests that a mild bugfix release might be preferable to strict upper-pinning, with some considering delaying pyparsing 3.3 adoption until after matplotlib 3.11.
    • Number of comments this week: 6
  2. [Bug]: violin's default alpha no longer persists: This issue reports a change in the behavior of violin plots in Matplotlib where setting the facecolor of a violin now overrides the default alpha transparency, which previously persisted separately. The user highlights that this change was not documented in the changelog and provides a minimal reproducible example demonstrating the difference in appearance between versions, tracing the cause to a specific commit that altered how alpha is handled within the facecolor parameter.

    • The comment acknowledges the difficulty in maintaining the previous behavior due to the shift of alpha into the facecolor tuple, explaining that the change simplifies logic but breaks the standard way users previously colored violins; it expresses a reluctance to accept this breakage given its impact on common usage and thanks the reporter for identifying the issue.
    • 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 one. 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 of efficiently building a single Sphinx Gallery example file, which currently requires lengthy build times or cumbersome workarounds 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 preview and develop individual gallery entries more quickly.
  3. [ENH]: Parse "\limits" in mathtext: This issue reports 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 expects the "\limits" command to properly position subscripts and superscripts above and below the integral symbol, but instead encounters a ValueError indicating an unknown symbol, preventing correct rendering of the expression.
  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 and consistency of displayed data.
  5. [Bug]: ax.transData does not honor data limits: This issue reports a bug in Matplotlib where the transformation ax.transData does not automatically respect the current data limits (xlim and ylim), causing it to use outdated limits when converting data 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: 2

Summarized Issues:

  • Deprecation warnings due to pyparsing API changes: Matplotlib version 3.10.6 triggers multiple deprecation warnings because it uses outdated pyparsing API methods after the release of pyparsing 3.3.0a1. The issue discusses potential solutions such as backporting fixes or managing pyparsing version dependencies to resolve these warnings.
  • issues/30617
  • Animation event source stopping behavior: The Animation._stop() method in matplotlib needs modification to properly stop event sources instead of just setting them to None. This change is necessary to improve the handling of event sources as discussed in a related pull request.
  • issues/30622

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

Summarized Issues:

  • 3D Rendering Limitations in Matplotlib: The issue highlights that the Line3D object in Matplotlib’s 3D plots is rendered as a flat 2D line positioned in 3D space rather than as a true 3D cylindrical shape with volume. This limitation points to the pseudo-3D rendering capabilities of Matplotlib and discusses possible workarounds and the intended scope of Matplotlib’s design.
  • issues/30623

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

Key Open Pull Requests

1. New document page for logo usage guide: This pull request introduces a new documentation page in the About Us section that provides official guidelines and references for Matplotlib logo usage, including links to NumFOCUS trademark policies, a color swatch table, and resources for generating the logo, addressing issue #18716 while seeking community input on handling logo display in dark and light modes.

  • URL: pull/30631
  • Merged: No
  • Associated Commits: 07656, 6b966, dfa93, 79754, b48ef, c07b4, 7d811, 4004e, a4466, 60ea7, 8c106, 3a658, ef32a, 68b64, 9a602, b88aa, 45c2d, 36fc6, 55e58, dbd5f, f19cf, 1098b

2. Implements WilkinsonLocator using Extended Wilkinson Algorithm: This pull request implements a new tick locator for Matplotlib based on the extended Wilkinson tick-placing algorithm, which balances simplicity, coverage, density, and legibility to provide customizable and readable tick placement on plots.

  • URL: pull/30632
  • Merged: No
  • Associated Commits: f0d28, 42a37, 33656, 41fc5, 9a699, 1d74c, 78f2f, bc7ce

3. Backport PR #30610 on branch v3.10.x (Bump mpl-sphinx-theme version): This pull request proposes backporting the update from PR #30610 to the v3.10.x branch, specifically to bump the version of the mpl-sphinx-theme.

  • URL: pull/30621
  • Merged: No
  • Associated Commits: 3609d

Other Open Pull Requests

  • Test tolerance and compatibility updates: This topic includes pull requests that increase test tolerances to handle minor pixel differences caused by external updates and fix test failures related to integer type compatibility on 32-bit systems. These changes ensure tests pass reliably across different environments and system architectures.
  • [pull/30624, pull/30629]
  • Font loading behavior improvements: This pull request removes the forced fallback in the FT2Font::load_char function for Type 3 fonts, allowing the code to properly warn when a glyph is not found by using load_glyph with a known existing or null glyph. This update improves error handling and glyph loading accuracy in the PDF backend.
  • [pull/30627]
  • GitHub action workflow fix: This pull request fixes a failure in the PR greeting GitHub action by adding a required name to the PR Welcome workflow job, ensuring the action runs correctly under updated usage requirements. This change maintains the functionality of automated PR greetings.
  • [pull/30633]

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

Key Closed Pull Requests

1. ENH: Allow partial autoscaling when limits are set pre-plot: This pull request addresses a bug in Matplotlib where partially set axis limits (such as setting only the left or right limit before plotting data) were ignored, by introducing new flags to track user intent and modifying the autoscaling logic to allow partial autoscaling when limits are set prior to plotting, thereby ensuring that plots correctly reflect fixed limits on one side while autoscaling the other.

  • URL: pull/30625
  • Merged: No
  • Associated Commits: e0d93, 328a5

2. Backport PR #30612 on branch v3.10.x (MNT: update black pin): This pull request backports the update of the black code formatter version pin from the main branch to the v3.10.x branch in the matplotlib project.

  • URL: pull/30614
  • Merged: Yes
  • Associated Commits: eb42d

3. Use auto to remove long typedefs in dlsym/GetProcAddress calls.: This pull request improves code readability and maintainability by replacing lengthy typedef declarations with the use of the auto keyword in dlsym and GetProcAddress function calls.

  • URL: pull/30615
  • Merged: Yes
  • Associated Commits: 8a6e2

Other Closed Pull Requests

  • Documentation updates for violin_stats: This topic includes pull requests that improve the documentation by adding "what's new" information for the violin_stats function, following a previous refactor. These updates help highlight the usefulness of pulling default KDE functionality into violin_stats for better maintenance and user understanding.
  • pull/30616
  • MouseEvent string representation enhancement: The pull request enhances the string representation of MouseEvent objects by including step information for scroll events. This change provides more consistent and informative event descriptions without requiring separate string methods for each MouseEvent subtype.
  • pull/30619
  • Debug flag addition to dviread CLI: This pull request adds a --debug flag to the python -mmatplotlib.dviread command-line interface, enabling debug-level logs such as dvi "specials" to be printed. This facilitates easier verification and debugging of dvi internals.
  • pull/30620
  • Fixes for F401 unused import warnings: These pull requests address new F401 unused import warnings detected by the linter ruff by removing or marking unused imports as used, while retaining the wx.svg import to maintain SVG support. The fix is also backported to the v3.10.x branch to ensure consistency across versions.
  • pull/30626, pull/30628
  • Dependency update for first-interaction: This pull request updates the "first-interaction" dependency from version 3.0.0 to 3.1.0, incorporating upstream fixes to resolve issue #30522. This ensures the project uses the latest stable version with important bug fixes.
  • pull/30630

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 32 5 6 57
QuLogic 43 11 0 25
LangQi99 20 4 4 20
melwyncarlo 25 5 2 16
tacaswell 12 1 1 19
anntzer 7 3 3 9
rcomer 7 3 3 3
trygvrad 3 1 4 2
jeromefv 9 1 0 0
evhalp 8 1 0 0

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