Skip to content

ENH: Ignore empty text for tightbbox#31285

Merged
QuLogic merged 1 commit intomatplotlib:text-overhaulfrom
scottshambaugh:text_tightbbox_empty
Mar 12, 2026
Merged

ENH: Ignore empty text for tightbbox#31285
QuLogic merged 1 commit intomatplotlib:text-overhaulfrom
scottshambaugh:text_tightbbox_empty

Conversation

@scottshambaugh
Copy link
Copy Markdown
Contributor

@scottshambaugh scottshambaugh commented Mar 11, 2026

PR summary

This ignores empty or hidden text for tightbbox, dedicating more space to the plot in tight & constrained layouts. Some of the constrained layout images are larger for reasons I don't fully understand, but it's probably something to do with those invisible text bboxes being used to calculate internal padding.

Targeting the text-overhaul branch.

@QuLogic when I regenerate baseline images, it adds a much larger diff than expected. How are you handling those on this branch?

AI Disclosure

None.

PR checklist

@scottshambaugh scottshambaugh changed the title Ignore empty text for tightbbox ENH: Ignore empty text for tightbbox Mar 11, 2026
@QuLogic
Copy link
Copy Markdown
Member

QuLogic commented Mar 11, 2026

@QuLogic when I regenerate baseline images, it adds a much larger diff than expected. How are you handling those on this branch?

You have to start with the images from the text-overhaul-figures branch in #30161, either starting from that branch directly and rebasing a commit with just the changes you need, or just copying them in and tracking what you want to properly add to the commit.

@scottshambaugh scottshambaugh marked this pull request as ready for review March 11, 2026 22:44
@scottshambaugh
Copy link
Copy Markdown
Contributor Author

Makes sense, that worked. Images here updated - let me know if I should be retargeting those to text-overhaul-figures instead

@QuLogic
Copy link
Copy Markdown
Member

QuLogic commented Mar 11, 2026

No need, I'll take care of updating that branch when this is approved.

@QuLogic QuLogic added this to the v3.11.0 milestone Mar 12, 2026
@github-project-automation github-project-automation Bot moved this to Waiting for other PR in Font and text overhaul Mar 12, 2026
@QuLogic QuLogic moved this from Waiting for other PR to Ready for Review in Font and text overhaul Mar 12, 2026
@QuLogic QuLogic force-pushed the text_tightbbox_empty branch from 5725832 to 8095b72 Compare March 12, 2026 20:07
@QuLogic QuLogic force-pushed the text_tightbbox_empty branch from 8095b72 to d772043 Compare March 12, 2026 20:09
@QuLogic
Copy link
Copy Markdown
Member

QuLogic commented Mar 12, 2026

Sorry, accidentally pushed the wrong commit to strip out the test images from here. Should be good again, and ready for merging, as I've put the new images on the text-overhaul-figures branch.

@QuLogic QuLogic merged commit 364c027 into matplotlib:text-overhaul Mar 12, 2026
45 of 59 checks passed
@github-project-automation github-project-automation Bot moved this from Ready for Review to Done in Font and text overhaul Mar 12, 2026
@jklymak
Copy link
Copy Markdown
Member

jklymak commented Mar 12, 2026

I think your diagnosis was correct - remove_text just sets the strings to empty I think and their existence meant they still had anchor points that were causing the tightbbox to include them.

wavebyrd pushed a commit to wavebyrd/matplotlib that referenced this pull request Mar 13, 2026
…x_empty

ENH: Ignore empty text for tightbbox
QuLogic added a commit to QuLogic/matplotlib that referenced this pull request Apr 10, 2026
This includes images changes for the following pull requests / commits:

* [Fix center of rotation with
  rotation_mode='anchor'](matplotlib#29199)
  (c44db77)
* [Remove ttconv backwards-compatibility
  code](matplotlib#30145)
  (8caff88)
* [Remove kerning_factor from
  tests](matplotlib#29816)
  (7b4d725)
* [Set text hinting to
  defaults](matplotlib#29816)
  (8255ae2)
* [Update FreeType to
  2.13.3](matplotlib#29816)
  (89c054d)
* [Implement text shaping with
  libraqm](matplotlib#30000)
  (b0ded3a,
  9813523)
* [Add language parameter to Text
  objects](matplotlib#29794)
  (7ce8eae)
* [Fix auto-sized glyphs with BaKoMa
  fonts](matplotlib#29936)
  (3ba2c13)
* [pdf: Improve text with characters outside embedded font
  limits](matplotlib#30512)
  (b70fb88,
  6cedcf7)
* [Prepare `CharacterTracker` for advanced font
  features](matplotlib#30608)
  (8274e17,
  70dc388,
  df670cf,
  ed5e074)
* [Add font feature API to
  Text](matplotlib#29695)
  (972a688)
* [Fix spacing in r"$\max
  f$"](matplotlib#30715)
  (4a99a83)
* [Implement libraqm for vector
  outputs](matplotlib#30607)
  (bd17cd4)
* [Drop the FT2Font intermediate
  buffer](matplotlib#30059)
  (9d7d7b4)
* [Rasterize dvi files without
  dvipng](matplotlib#30039)
  (7627118)
* [Update bundled FreeType and HarfBuzz
  libraries](matplotlib#30938)
  (a161658,
  9619bcc)
* [Fix positioning of wide mathtext
  accents](matplotlib#31069)
  (c2fa7ba)
* [Refactor RendererAgg.draw_{mathtext,text,tex} to use same base
  algorithm](matplotlib#31085)
  (931bcf3)
* [Implement TeX's fraction and script
  alignment](matplotlib#31046)
  (94ff452,
  4bfa0f9,
  1cd8510)
* [Fix confusion between text height and ascent in metrics
  calculations](matplotlib#31107)
  (60f2310)
* [mathtext: Fetch quad width & axis height from font
  metrics](matplotlib#31110)
  (692df3f,
  383028b)
* [mathtext: add mathnormal and distinguish between normal and italic
  family](matplotlib#31121)
  (a6913f3)
* [ENH: Ignore empty text for
  tightbbox](matplotlib#31285)
  (d772043)
* [Drop axis_artist tickdir image compat, due to text-overhaul
  merge](matplotlib#31281)
  (2057583)
* [text: Use font metrics to determine line
  heights](matplotlib#31291)
  (3ab6a27,
  d961462,
  97f4943)
* [ps/pdf: Override font height metrics to support AFM
  files](matplotlib#31371)
  (e0913d4)
* [TST: Cleanup back-compat code in tests touched by text
  overhaul](matplotlib#31295)
  (7c33379)
* [TST: Set tests touched by text overhaul to mpl20
  style](matplotlib#31300)
  (41c4d8d)
@QuLogic QuLogic mentioned this pull request Apr 10, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants