Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Matplotlib: May 12, 2025 - May 19, 2025 (12:00: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 for the 3.10.x series addresses several issues, including respecting array alpha in image interpolation, removing md5 usage for FIPS compliance, and fixing various plotting and figure handling bugs. It also introduces a version gate for GTK4 calls and enhances documentation.

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. [Bug]: install in development mode fails: This issue is about a user encountering a problem while trying to install Matplotlib in development mode using Python 3.10.5, which fails due to the requirement for Python 3.11 or later. The user has attempted various troubleshooting steps, such as recreating the virtual environment, but continues to face errors related to the Python version compatibility.

    • The comments suggest using a newer Python version, as the current version is incompatible with the requirements. Some users recommend using alternative tools like conda or mamba for environment setup, while others discuss the potential inclusion of tools like uv and pixi in the documentation, considering their pros and cons. There is a consensus on updating the documentation to reflect these alternative methods, with appropriate warnings about their limitations.
    • Number of comments this week: 9
  2. [Bug]: pixeled dotted lines with no readability: This issue reports a bug in the Matplotlib library where the user experiences pixeled dotted lines that lack readability when plotting graphs. The user provides a code snippet for reproduction and mentions that the expected outcome should be readable figures, but the actual outcome is not as desired.

    • The comments suggest that the issue might be specific to the user's environment, possibly due to the rendering backend or screen resolution settings. Suggestions include increasing the dpi, saving the plot to confirm sharpness, and switching the Matplotlib backend. Additionally, there is a possibility that the issue is related to the user's IDE or UI, and it is recommended to report the bug to the respective UI developers.
    • Number of comments this week: 3
  3. Add the 6 color and 8 color sequence for the Petroff color cycles: This issue is about adding the 6-color and 8-color sequences for the Petroff color cycles to the Matplotlib project, as these sequences are distinct and not just truncated versions of the existing 10-color sequence. The discussion references previous issues and pull requests, highlighting the need for these additional color sequences to enhance the project's color styling options.

    • The comments express user interest in the distinctiveness of the 6-color sequence, support for adding both the 6-color and 8-color sequences, and a willingness to contribute a pull request to advance the inclusion of these sequences, despite pending documentation work for the existing 10-color sequence.
    • Number of comments this week: 3

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 highlights a bug in the ax.hist() function of the Matplotlib library when used with categorical variables and the density=True parameter, 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 addresses 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, providing clear documentation for the category-to-integer conversion, and ensuring correct label positioning.
  2. [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 html or make 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 suggests modifications to the conf.py configuration to streamline the process, ultimately making it more accessible for developers, especially beginners, who need to frequently preview their work.
  3. [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 is not functioning as expected. The user reports that when attempting to use "\limits" to adjust the placement of subscripts and superscripts in integral expressions, a ParseFatalException error occurs, indicating that the "\limits" command is not recognized by the parser.
  4. [ENH]: Fix precision displayed by LogFormatter.format_data_short: This issue addresses the need to enhance the LogFormatter in a project by ensuring it displays mouse cursor values with a precision that matches the cursor pointing accuracy, similar to the existing functionality for linear formatters. The problem has been open for over 402 days, indicating a need for a solution to align the precision display of log formatters with that of linear formatters, although no specific solution has been proposed yet.
  5. [Bug]: ax.transData does not honor data limits: This issue highlights a bug in Matplotlib where the ax.transData transformation does not automatically update to reflect changes in data limits (xlim and ylim), contrary to what the documentation suggests. The user reports that this discrepancy requires manual intervention to update the data limits, which can lead to confusion and unexpected behavior when transforming data coordinates.

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:

  • Python Version Compatibility for Matplotlib Installation: Users attempting to install Matplotlib in development mode with Python 3.10.5 encounter errors due to the Meson build system requiring Python 3.11 or later. The discussion suggests using a newer Python version or alternative setups like conda or uv to resolve the issue.
    • issues/30038
  • Rendering Issues with Dotted Lines in Matplotlib: A bug in the Matplotlib library causes pixeled, unreadable dotted lines in plots, which may be due to rendering backend issues or specific environment settings. Users seek advice on resolving these rendering problems to improve plot readability.
    • issues/30042
  • Addition of Petroff's Color Sequences to Matplotlib: There is a proposal to add 6-color and 8-color sequences from Petroff's color cycles to Matplotlib, as they are distinct from the existing 10-color sequence. The community supports this addition, referencing previous issues and pull requests.
    • issues/30060

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

Summarized Issues:

  • Matplotlib Parameter Naming Issues: The Matplotlib library has a bug where setting the font.sans-serif parameter using matplotlib.rc or matplotlib.pyplot.rc is problematic due to the hyphen in the parameter name. This issue suggests the need for an alias like sans to facilitate this setting.
    • issues/30021
  • Matplotlib Import Errors with PySide6: Importing pyplot in Matplotlib raises an error due to the inability to convert Qt enumerations to integers when using PySide6. This can be resolved by updating the QT_API condition in the code or upgrading Matplotlib to a more recent version.
    • issues/30041
  • Matplotlib Documentation Versioning: The documentation for the stable version of Matplotlib incorrectly indicates that it is an unstable development version. This suggests a need for updates to the version switcher rather than the mpl-sphinx-theme.
    • issues/30046
  • Choropleth Map Customization in Matplotlib: There is a need for enhanced support in Matplotlib for creating and customizing choropleth maps with geospatial datasets. This includes allowing users to programmatically isolate and style individual geographic regions, improve legend handling, and integrate more seamlessly with tools like GeoPandas.
    • issues/30051
  • Y-Axis Tick Label Positioning in Matplotlib: A bug in Matplotlib affects the manual adjustment of overlapping y-axis tick labels using the set_position method, especially in very small plots. Alternative solutions include setting other tick positions, using a smaller font, or manually placing new text.
    • issues/30056

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. Setting imshow(animated=True) still show does not show an image : This pull request addresses the issue where setting imshow(animated=True) does not display an image by providing a patch that resolves the problem, includes tests to ensure the image is drawn when animate=True, and links to the related issue #18985.

  • URL: pull/30052
  • Merged: No
  • Associated Commits: c998f, 6882a

2. Bug Fix For "matplotlib eventplot not shows all the binary data for big number of events" - Draft PR: This pull request addresses a bug in the Matplotlib library's eventplot function, where events are missing from the graph when plotting a large number of events (over 500) in limited screen space, by implementing a fix that disables snapping and enables antialiasing when the number of events exceeds 200 and the snap keyword argument is not explicitly set, while also providing a warning to inform users of this automatic adjustment.

  • URL: pull/30053
  • Merged: No
  • Associated Commits: 26059, e8d95

3. Fixed an off-by-half-pixel bug in image resampling when using a nonaffine transform: This pull request addresses an off-by-half-pixel bug in the matplotlib._image.resample() function when using a nonaffine transform, correcting the mesh computation from the lower corners to the centers of pixels to eliminate a half-pixel shift in the output, as demonstrated by the provided plots and script.

  • URL: pull/30054
  • Merged: No
  • Associated Commits: 2ace1, 77bdc

Other Open Pull Requests

  • Rasterization Process Update: This pull request proposes eliminating the dependency on dvipng for rasterizing DVI files in the Matplotlib project, opting instead for an internal rasterization process. This change will facilitate future support for xetex and luatex, while also considering whether to maintain the old dvipng-based codepath as an option for users.
    • pull/30039
  • FT2Font and FT2Image Module Improvements: Several pull requests address improvements in the FT2Font and FT2Image modules of Matplotlib. One pull request replaces the outdated FT2Image class with plain numpy arrays, eliminating the need for a separate 2D buffer class. Another pull request removes the FT2Font intermediate buffer to directly render FT glyphs to the Agg buffer, enabling subpixel positioning of glyphs without additional effort.
    • pull/30044, pull/30059
  • Alpha Compositing Fix in ft2font Module: This pull request addresses an issue with alpha compositing in the ft2font module's draw_bitmap function by replacing the old formula. The new approach properly handles intermediate values while maintaining efficiency for cases involving an empty buffer.
    • pull/30043
  • Test Data Management and 3D Scatter Plot Colormap Update: One pull request aims to consolidate test data files into a single subdirectory to simplify their management, particularly in relation to issue #29093. Another pull request introduces a new test to ensure that updating the colormap of a 3D scatter plot in Matplotlib after the figure has been drawn correctly changes the face colors, addressing a historical bug.
    • pull/30061, pull/30062

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

Key Closed Pull Requests

1. Add "sans" alias to rc() to allow users to set font.sans-serif: This pull request addresses issue #30021 by adding a "sans" alias to the rc() function in Matplotlib, allowing users to set the font.sans-serif parameter more conveniently, and includes tests to ensure the functionality works as intended without causing any test failures.

  • URL: pull/30030
  • Merged: 2025-05-12T19:14:20Z
  • Associated Commits: fa3f5, 22a8f, fd687

2. DOC: consolidate version switcher guidance: This pull request consolidates the guidance for the version switcher by integrating it into the release guide, following the realization that similar guidance was already present, and includes updates to the documentation to ensure consistency and clarity.

  • URL: pull/30049
  • Merged: 2025-05-14T11:10:30Z
  • Associated Commits: 114b0, 85f1e

3. Remove cm.get_cmap: This pull request involves the removal of the cm.get_cmap function from the Matplotlib library, as discussed in a previous pull request, with the final decision to eliminate it in version 3.11, and it was successfully merged on May 13, 2025.

  • URL: pull/30005
  • Merged: 2025-05-13T21:23:24Z
  • Associated Commits: a5a48

Other Closed Pull Requests

  • Matplotlib Documentation and Resources: The Matplotlib project saw updates to its documentation and external resources. One pull request added a new online course to the external resources, while another improved troubleshooting documentation by merging sections and removing redundancies.
    • pull/30032, pull/30040
  • Version Switcher Updates: Two pull requests focused on updating the version switcher for the Matplotlib project. These updates ensured the version switcher was current and accurate, with one specifically accommodating version 3.10.3.
    • pull/30047, pull/30048
  • Code and Security Enhancements: Enhancements were made to improve code clarity and security. One pull request removed unnecessary code in a function, while another improved security by running precommit hooks on GitHub Actions.
    • pull/30036, pull/30045
  • Documentation and Code Search Tips: A pull request provided a documentation tip to help users exclude undesired matches in GitHub code searches. This was a follow-up to a previous issue in the Matplotlib project.
    • pull/30050
  • Filename and Compatibility Fixes: A pull request addressed a filename issue by renaming an RST file to remove an unintended leading space. This change resolved compatibility problems with software that does not support such filenames.
    • pull/30055
  • Backporting and Error Fixes: Changes from a previous pull request were backported to the v3.10.x branch to ensure consistent behavior of the 'lines.markeredgecolor' setting. Additionally, mypy errors in a private module were addressed by adding a type stub.
    • pull/30057, pull/30058

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 26 4 1 17
dstansby 17 3 0 17
QuLogic 21 3 0 13
anntzer 12 8 0 7
jklymak 6 1 0 15
rcomer 6 0 0 14
tacaswell 7 1 0 9
Lynsoo 13 0 0 0
ebubekir-pulat 10 3 0 0
story645 3 1 1 6

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