Weekly GitHub Report for Matplotlib: November 24, 2025 - December 01, 2025 (12:04:15)
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:
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.
-
Plot not displaying correctly when using Matplotlib: This issue describes a problem where a user is unable to display a Matplotlib plot correctly; the plot window either appears blank, partially rendered, or does not show the expected sine wave with axes and legend. The user has provided a minimal reproducible example and has tried switching backends and verifying package versions, but the issue persists without any error messages or clear indication of the cause.
- A commenter requested the original poster to clean up the issue description for better readability and asked for clarification on whether the problematic behavior is consistently reproducible, highlighting confusion about the reported symptoms.
- 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.
- [Bug]: Misalignment of Labels and Incorrect Density Values in
ax.hist()for Categorical Variables: This issue addresses a bug in theax.hist()function of Matplotlib when used with categorical variables and thedensity=Trueparameter, 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 labels and interpret the histogram. - [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 generate many warnings. The author proposes improving the documentation with practical tips and adjusting the Sphinx Gallery configuration—such as modifying
include_patterns,suppress_warnings, andgallery_dirsinconf.py—to streamline the process, and suggests adding a dedicated build target in the Makefile to simplify rebuilding individual examples for developers, especially beginners. - [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, specifically integrals with limits placed above and below the integral sign. The user expects the "\limits" command to properly format the integral with its limits displayed above and below, but instead encounters a ValueError indicating an unknown symbol, preventing correct rendering of the expression.
- [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 consistency and accuracy of displayed data.
- [Bug]:
ax.transDatadoes not honor data limits: This issue reports a bug in Matplotlib where the transformationax.transDatadoes not respect the current data limits set byxlimandylim, 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 likeset_xlimorset_ylimare 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:
- Plot rendering issues: Users report that plots generated with Matplotlib do not display correctly, resulting in blank or partially rendered windows without any error messages. This problem persists even when using minimal reproducible examples and trying different backends, indicating a deeper rendering or backend compatibility issue.
- issues/30792
- Documentation gaps on deprecated colormaps: The Matplotlib documentation no longer includes information about deprecated colormaps like
gist_gray,gist_yarg, andbinary, which were previously documented. This removal causes confusion among users who rely on this information to avoid using redundant colormaps in their visualizations. - issues/30796
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: 6
Summarized Issues:
- Customization limitations in legend and title fonts: The current Matplotlib implementation does not allow users to customize the legend box edge line width, limiting visual control over legend appearance. Additionally, the
ax.set_title()method ignores thesizeorfontsizeparameter when a custom font is specified, preventing expected updates to the title font size. - issues/30767, issues/30797
- Figure format and editing capabilities: There is a request for an official editable figure format in Matplotlib that would save the full figure state and allow reopening and interactive editing without rerunning code. This feature aims to improve workflow efficiency and accessibility for various users including researchers and students.
- issues/30769
- Hatch pattern application in grouped bar charts: The grouped_bar function currently cycles hatch patterns per patch rather than per dataset, causing incorrect repetition within datasets. Normalizing hatch patterns to one per dataset is proposed to align with color and label broadcasting and fix related test failures.
- issues/30789
- Colorbar range control in contour plots: Users face difficulty setting a custom display range for the colorbar independently of contour levels, as parameters like
vminandvmaxaffect contour levels but not the colorbar scale. There is a request to reintroduce or provide an easy alternative toset_climandclimmethods to adjust the colorbar range separately. - issues/30793
- Diagram creation and advanced layout features: There was a discussion about enhancing Matplotlib to support creating complex diagrams such as flow charts and mind maps with features like absolute sizing, auto-resizing canvases, and shape combination. However, this functionality is not planned for core Matplotlib and the issue was closed.
- issues/30794
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: 2
Key Open Pull Requests
1. Fix array alpha to multiply (not replace) existing RGBA alpha: This pull request fixes the behavior of array alpha in RGBA images so that it multiplies with the existing alpha channel instead of replacing it, making it consistent with scalar alpha behavior and resulting in more intuitive compositing.
- URL: pull/30795
- Merged: No
2. Always display WebAgg URL regardless of browser open status: This pull request ensures that the WebAgg server URL is always displayed to users regardless of whether the browser opens automatically or not, improving accessibility and usability by moving the URL print statement outside the conditional block that previously limited its display.
- URL: pull/30786
- Merged: No
- Associated Commits: 25430
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: 17
Key Closed Pull Requests
1. Add legend support for PatchCollection: This pull request adds support for displaying PatchCollection instances in matplotlib legends by registering them to use the existing HandlerPolyCollection legend handler, thereby enabling automatic legend entries with correct visual representation and eliminating the previous need for manual legend creation.
- URL: pull/30756
- Merged: 2025-11-26T18:25:45Z
- Associated Commits: 0f132, 3f013, 567b4, 8fc57, 478de, 8536b, 71c9a, 618d4, 122a7, 83adf, 477bf, 1a1b2, bd2f9, 33242, b669f, 92aae, 555fa
2. Fix colorbar alignment with suptitle in compressed layout mode: This pull request fixes the alignment of colorbars with their parent axes when using compressed layout mode with a suptitle by ensuring that colorbars are sized based on the post-aspect-adjustment dimensions of the axes, thereby maintaining proper vertical alignment and height.
- URL: pull/30766
- Merged: 2025-11-27T17:15:50Z
3. Add legend.linewidth parameter to control legend box edge linewidth: This pull request introduces a new legend.linewidth parameter to matplotlib's rcParams and Legend class, allowing users to independently control the linewidth of the legend box edges for improved customization and consistency with other legend styling options.
- URL: pull/30780
- Merged: 2025-11-29T13:26:11Z
Other Closed Pull Requests
- Documentation improvements and examples: Multiple pull requests focus on enhancing Matplotlib's documentation by adding examples for functions like
make_keyword_only()and tick label alignment, correcting docstrings for accuracy, and improving readability with added notes. These changes aim to clarify usage and fix misleading information, ensuring users have better guidance and understanding of the API. - [pull/30783, pull/30763, pull/30784, pull/30799, pull/30801, pull/30802, pull/30784]
- Pie chart functionality and documentation updates: Several pull requests introduce new pie chart features such as the
pie_labelmethod andPieContainerclass to improve labeling and organization of pie chart components, alongside updates to documentation that remove outdated indexing of the pie function's return value. These changes enhance both the functionality and the accuracy of the pie chart API in Matplotlib. - [pull/30733, pull/30799]
- Key-mapping typo fix and backports: A set of pull requests address a typo in the key-mapping for the "f11" key in the Qt backend, ensuring correct keypress event handling, with subsequent backports of this fix to older branches to maintain consistency across versions. This ensures that the fix is applied not only to the main branch but also to supported release branches.
- [pull/30788, pull/30790, pull/30791]
- Deprecation of the
table()function: One pull request formally declares thetable()function as deprecated, signaling that it is no longer actively developed within the Matplotlib project. This helps users and developers understand the current status and future direction regarding this function. - [pull/30776]
- Glossary introduction: A pull request reintroduces the glossary to the project by establishing its structural framework with initial draft definitions, aiming to close a related issue while deferring detailed term refinement to future contributions. This sets the foundation for a comprehensive glossary to aid user understanding.
- [pull/30782]
- Survey-related changes: One pull request proposes changes related to a university student survey, as indicated by its title and description, though details are limited. This appears to be a specialized update distinct from other documentation or functionality changes.
- [pull/30781]
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 | 16 | 9 | 0 | 53 |
| FazeelUsmani | 32 | 4 | 0 | 8 |
| ilakkmanoharan | 22 | 2 | 5 | 14 |
| QuLogic | 12 | 1 | 0 | 14 |
| rcomer | 8 | 3 | 0 | 13 |
| story645 | 1 | 0 | 0 | 22 |
| tacaswell | 2 | 1 | 0 | 19 |
| anntzer | 5 | 2 | 0 | 0 |
| jklymak | 0 | 0 | 0 | 6 |
| Nayil97 | 4 | 1 | 0 | 0 |