GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||
GeezerVison is showing github.com — Fix center of rotation with rotation_mode='anchor' by WPurre · Pull Request #29199 · matplotlib/matplotlib ConversationPR summaryThis will close #13044. I see that there is a pull request already #20057, however that has not been active for a long time and has since been closed. I will be using the following code from the issue as a way of showing the result of the code: import matplotlib.pyplot as plt fig, axes = plt.subplots(2, 2) for idx, ax in enumerate(axes.flatten()): ax.axvline(.5, linewidth=.5, color='.5') ax.axhline(.5, linewidth=.5, color='.5') ax.text( .5, .5, 'pP', size=50, bbox=dict(facecolor='None', edgecolor='red', pad=0), rotation=idx*90, va='center_baseline', rotation_mode='anchor' ) This code produces the following plot: After the changes the plot changes to: Showing that the text now properly rotates around the point (0.5, 0.5) instead of the leftmost side of the text. As was diagnosed in #20057 the issue is caused by the offset of the text not being rotated with the rest of the text, causing the text to rotate around itself rather than the point it should be rotating around. This understandably causes some tests to fail since rotated text will look slightly different. As far as I can tell all of the failed tests are of this nature, rotated text being moved slightly due to the new logic. I believe that the difference in the line is caused by the available space being changed by moving the text but would love feedback on this. PR checklist
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsThere was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 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. 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 We strive to be a welcoming and open project. Please follow our Code of Conduct.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
WPurre
force-pushed
the
fixing-rotation-bug
branch
2 times, most recently
from
f26ed0e to
5739086
Compare
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Member
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
WPurre
force-pushed
the
fixing-rotation-bug
branch
from
5739086 to
14dc50d
Compare
WPurre
force-pushed
the
fixing-rotation-bug
branch
2 times, most recently
from
8269aa0 to
6009467
Compare
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
scottshambaugh
approved these changes
|
|
Can you add a new image test which is the reproducer from this issue? Although any future changes to this will clearly cause a bunch of failures, having one very clear test case is still very valuable. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
6009467 to
a143ac8
Compare
|
I rebased and pushed the test from the original issue. Several tight layout/constrained layout test images were dropped here because we switched them all to placeholders. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
a143ac8 to
cf34115
Compare
cf34115 to
c44db77
Compare
|
While I did do the rebase and add the test, it was really by @timhoffm from the issue, so I'm going to count my adding it as an approval of its contents. As I am merging this to the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @WPurre! Congratulations on your first PR to Matplotlib 🎉 We hope to hear from you again. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Fix center of rotation with rotation_mode='anchor'
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)
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
[Bug]: Text rotation leads to characters being misplaced within their bounding boxes. Attempted solution provided. rotated text does not align Center of rotation for text with rotation_mode='anchor'
There was an error while loading. Please reload this page.