Weekly GitHub Report for Matplotlib: June 23, 2025 - June 30, 2025 (23:06:30)
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 for the 3.10.x series addresses several issues, including respecting array alpha in image interpolation, removing md5 usage for FIPS compliance, and fixing pyplot.matshow figure handling. It also includes adjustments for polar plot title positioning, a version gate for GTK4 calls, and a warning for scatter plot configurations, 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.
-
[Bug]: tick_top and sharex do not work together: This issue describes a bug in the Matplotlib library where the
tick_topfunction does not work as expected when used withsharex=True, resulting in ticks being added to the lower subplot instead of the top of the uppermost subplot. The user provides a code snippet to reproduce the issue and includes images to illustrate the actual and expected outcomes, highlighting the incompatibility with shared axes.- The comments discuss the limitations of the current implementation, suggesting a workaround to achieve the desired tick placement and proposing enhancements to the
label_outerfunction to allow more flexible control over tick and label placement. There is a consensus on the need for improvements, with suggestions to allowlabel_outerto affect only specific axes and to consider the behavior oftick_top(). The discussion also references a related pull request that might address similar issues. - Number of comments this week: 5
- The comments discuss the limitations of the current implementation, suggesting a workaround to achieve the desired tick placement and proposing enhancements to the
-
[Bug]: Rendering on Wayland with fractional scaling looks bad: This issue describes a bug in the Matplotlib library where rendering plots on Wayland with fractional scaling (e.g., 150%) results in jagged edges in lines and text, while the user interface elements like the toolbar remain sharp. The problem seems to be related to the detection of the actual DPI when fractional scaling is enabled, as the issue does not occur when the scaling is set to 100% or 200%.
- The comments discuss the scope of the issue, confirming it is specific to Wayland and not occurring with x11, and that it only affects fractional scaling, not 200% scaling. A suggestion is made to check the device pixel ratio using a small code snippet to further diagnose the problem.
- Number of comments this week: 3
-
[Bug]: stem complaining about PyTorch's Tensor: This issue describes a bug where the
stemfunction in Matplotlib breaks when using a PyTorch Tensor for the horizontal components, resulting in aTypeErrorrelated to themin()function. The user provides a code snippet demonstrating that whileplt.plot()works with a PyTorch Tensor,plt.stem()does not, unless the Tensor is converted to a NumPy array.- The initial comment requests the full traceback, which the issue author subsequently provides, thanking the commenter for their attention.
- Number of comments this week: 2
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 highlights a bug in theax.hist()function of Matplotlib when used with categorical variables and thedensity=Trueparameter, leading to incorrect density computations due to the internal conversion of categories to integers, which affects the bin width and results in miscalculated density values. Additionally, the issue points out the misalignment of labels, as the function does not position them precisely at the center of the bars, and suggests improvements such as reconsidering density calculations for categorical data and providing clear documentation on the category-to-integer conversion process. - [MNT]: Ease building just one Sphinx Gallery example file: This issue addresses the challenge of efficiently building a single Sphinx Gallery example file, which currently requires a lengthy process through
make htmlormake html-skip-subdirs, often resulting in numerous unhelpful warnings. The proposed solution involves updating the documentation to provide clearer guidance on building individual files and potentially adding a new build target in the Makefile to streamline the process, thereby making it more accessible for developers, especially beginners, who need to frequently preview their work. - [ENH]: Parse "\limits" in mathtext: This issue pertains to a problem encountered in the matplotlib library's mathtext module, where the parsing of LaTeX expressions containing the "\limits" command fails. The user reports that using "\limits" with integral expressions, such as "\int \limits _ { v } ^ { \mu e } e d A", results in a ValueError due to the module's inability to recognize the "\limits" symbol, which is crucial for displaying subscripts and superscripts correctly above and below certain mathematical operators.
- [ENH]: Fix precision displayed by LogFormatter.format_data_short: This issue pertains to the enhancement of the LogFormatter in a GitHub project, specifically aiming to fix the precision of values displayed by the LogFormatter.format_data_short function. The problem identified is that, unlike linear formatters, log formatters currently do not display mouse cursor values with a precision that matches the cursor pointing accuracy, and the issue suggests that implementing this feature would be beneficial.
- [Bug]:
ax.transDatadoes not honor data limits: This issue highlights a bug in Matplotlib where theax.transDatatransformation does not automatically update to reflect changes in data limits (xlimandylim) when new data is added to the axes, contrary to what the documentation suggests. The user reports that this discrepancy requires a manual update of the data limits using methods likeset_xlimandset_ylimto ensureax.transDatauses the latest data limits, which is both confusing and counterintuitive.
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:
- Matplotlib Functionality Issues: The
stemfunction in Matplotlib encounters a TypeError when a PyTorch Tensor is used for horizontal components, unlike theplotfunction which works correctly. Converting the Tensor to a NumPy array resolves this issue, indicating a compatibility problem with PyTorch Tensors in certain Matplotlib functions.
- Rendering and DPI Detection Problems: Rendering plots on Wayland with fractional scaling in Matplotlib results in jagged edges in lines and text, while UI elements remain sharp. This suggests a potential issue with DPI detection under these conditions, affecting the visual quality of plots.
- Shared Axes and Ticks Misplacement: Using
tick_topwithsharex=Truein Matplotlib does not function as expected, as it places ticks on the lower subplot instead of the top of the uppermost subplot. This leads to incompatibility with shared axes, causing confusion in plot presentation.
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:
-
Documentation Errors in Release Notes: The release notes for matplotlib versions 3.5.0 and 3.7.0 contain a documentation error where the class name "ConnectionPath" is incorrectly used instead of the correct "ConnectionPatch." This typo needs to be corrected to accurately reflect the deprecation information.
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: 6
Key Open Pull Requests
1. Make path extension a bit safer: This pull request aims to enhance the safety of path extensions in the codebase by replacing double pointers with std::array and returned tuples, ensuring compile-time checks to prevent future issues related to size changes, without affecting the code size.
- URL: pull/30208
- Merged: No
2. Clean up Qt socket notifier to avoid spurious interrupt handler calls: This pull request addresses the issue of spurious interrupt handler calls in the Qt socket notifier by ensuring that objects without a parent in PyQt are explicitly cleaned up using deleteLater(), thereby preventing errors such as OSError: [Errno 9] Bad file descriptor during interpreter shutdown or when interrupts occur, and has been tested on Linux with Python 3.13.
- URL: pull/30209
- Merged: No
- Associated Commits: b06d1
3. [ENH] Change mpl.color_sequences['tab10'] to return color names instead of RGB: This pull request proposes an enhancement to the Matplotlib library by modifying mpl.color_sequences['tab10'] to return color names instead of RGB tuples, addressing and closing issue #29922.
- URL: pull/30210
- Merged: No
- Associated Commits: 9a3e5
Other Open Pull Requests
- Bug Fix for Pillow Compatibility: This pull request addresses a bug by fixing a future incompatibility issue with Pillow version 13. It ensures that the new and changed code is properly tested, as referenced in the related Pillow GitHub pull request.
- Documentation Improvement for FFMpegFileWriter: This pull request improves the documentation for the
matplotlib.animation.FFMpegFileWriterclass. It explicitly lists its constructor parameters in the class docstring, enhancing user understanding and visibility in the Sphinx-generated documentation.
- Fix for Polar Plot Logarithmic Scale: This pull request addresses issue #30179 by fixing the calculation of inner patch boundaries and spine locations in polar plots when using a logarithmic scale. It ensures that these elements are correctly transformed from linear space to match the scale's transform, as demonstrated by the updated test images provided.
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: 8
Key Closed Pull Requests
1. Fix polar aspect: This pull request addresses issue #30164 by refining the PolarAxes projection in Matplotlib to fix autoscaling issues with radial ticks, improve aspect ratio handling, and enhance tick label visibility in polar plots, while also adding a dedicated test script, test_polaraxes.py, to ensure the correctness and stability of these changes.
- URL: pull/30207
- Merged: No
2. [Doc]: fix bug in release notes for matplotlib v3.5.0 and v3.7.0: This pull request addresses a typo in the release notes for matplotlib versions 3.5.0 and 3.7.0 by correcting the incorrect reference to a non-existent class ConnectionPath to the correct class ConnectionPatch, ensuring the documentation accurately reflects the intended deprecations.
- URL: pull/30212
- Merged: Yes
3. Use collections.deque to store animation cache data.: This pull request involves using collections.deque to store animation cache data in the Matplotlib project, as deques are more efficient for this purpose than repeatedly slicing a list, and it also removes an unnecessary reference to old_frame_seq since the iterator already maintains that data.
- URL: pull/30206
- Merged: Yes
- Associated Commits: e77c1
Other Closed Pull Requests
- Documentation Bug Fixes in Release Notes: These pull requests involve backporting changes to address and fix a documentation bug in the release notes for matplotlib versions 3.5.0 and 3.7.0. The changes were applied to both the v3.10.x and v3.10.3-doc branches, ensuring consistency across different documentation versions.
- Status Workflow Badge Addition: A pull request was made to add a status workflow badge to the README file of the Matplotlib project. This addition helps in providing a quick visual indication of the project's build status directly in the README.
- Backporting
Path.__deepcopy__Method: The pull request involves backporting thePath.__deepcopy__method to the v3.10.x branch to prevent infinite recursion issues. This method was originally introduced in a previous pull request and is crucial for maintaining stability in the codebase.
- Compilation Issue Fix on Cygwin: A pull request was made to address a compilation issue on the Cygwin platform by rearranging the include order of headers in
src/ft2font.{cpp,h}. This change ensures thatPython.his included before system headers, following Python's guidelines to prevent conflicting visibility macro definitions.
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 | 11 | 5 | 0 | 10 |
| CorenthinZ | 25 | 0 | 0 | 0 |
| jkseppan | 18 | 4 | 0 | 1 |
| timhoffm | 4 | 1 | 1 | 14 |
| anntzer | 2 | 2 | 0 | 12 |
| ayshih | 9 | 2 | 0 | 4 |
| jklymak | 5 | 0 | 0 | 10 |
| No author found | 7 | 0 | 0 | 0 |
| mrinalcodez | 5 | 1 | 0 | 1 |
| rcomer | 1 | 1 | 0 | 4 |
Access Last Week's Newsletter: