Skip to content

mplot3d: refresh projected axis positions before tightbbox#31342

Open
Donj63000 wants to merge 1 commit intomatplotlib:mainfrom
Donj63000:fix-31277-tightbbox
Open

mplot3d: refresh projected axis positions before tightbbox#31342
Donj63000 wants to merge 1 commit intomatplotlib:mainfrom
Donj63000:fix-31277-tightbbox

Conversation

@Donj63000
Copy link

Fixes #31277

The issue comes from Axis3D.get_tightbbox() using stale artist extents before
the projected 3D axis positions have been refreshed. In constrained layout, this
can make the computed bbox too small and lead to overlaps between 3D tick labels
and the title of the following subplot.

This patch refreshes the projected axis geometry before computing the tightbbox,
so layout uses updated extents.

It also adds regression tests covering:

@github-actions
Copy link

Thank you for opening your first PR into Matplotlib!

If you have not heard from us in a week or so, please leave a new comment below and that should bring it to our attention. Most of our reviewers are volunteers and sometimes things fall through the cracks. We also ask that you please finish addressing any review comments on this PR and wait for it to be merged (or closed) before opening a new one, as it can be a valuable learning experience to go through the review process.

You can also join us on gitter for real-time discussion.

For details on testing, writing docs, and our review process, please see the developer guide.
Please let us know if (and how) you use AI, it will help us give you better feedback on your PR.

We strive to be a welcoming and open project. Please follow our Code of Conduct.

@scottshambaugh
Copy link
Contributor

scottshambaugh commented Mar 20, 2026

Hi, please fill out our PR template when opening a PR. Specifically, your description is missing the AI disclosure section.

@scottshambaugh scottshambaugh added the status: autoclose candidate PRs that are not yet ready for review and may be automatically closed in two weeks label Mar 20, 2026
@github-actions
Copy link

⏰ This pull request might be automatically closed in two weeks from now.

Thank you for your contribution to Matplotlib and for the effort you have put into this PR. This pull request does not yet meet the quality and clarity standards needed for an effective review. Project maintainers have limited time for code reviews, and our goal is to prioritize well-prepared contributions to keep Matplotlib maintainable.

Matplotlib maintainers cannot provide one-to-one guidance on this PR. However, if you ask focused, well-researched questions, a community member may be willing to help. 💬

To increase the chance of a productive review:

As the author, you are responsible for driving this PR, which entails doing necessary background research as well as presenting its context and your thought process. If you are a new contributor, or do not know how to fulfill these requirements, we recommend that you familiarize yourself with Matplotlib's development conventions or engage with the community via our Discourse or one of our meetings before submitting code.

If you substantially improve this PR within two weeks, leave a comment and a team member may remove the status: autoclose candidate label and the PR stays open. Cosmetic changes or incomplete fixes will not be sufficient. Maintainers will assess improvements on their own schedule. Please do not ping (@) maintainers.

@Donj63000
Copy link
Author

Hi, sorry for the inconvenience and for the time this may have cost you.
I’ll take some time to properly rework everything and submit a new PR that follows the template, including the AI disclosure section with details on how it was used.
Thank you for your feedback and for your work

@timhoffm
Copy link
Member

No need to create a new PR, you can update this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

first-contribution status: autoclose candidate PRs that are not yet ready for review and may be automatically closed in two weeks topic: mplot3d

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

[Bug]: 3D ax1's tick labels and ax2's title overlap in a constrained layout

3 participants