-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Use bbox.{size,bounds,width,height,p0,...} where appropriate. #21400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Mostly for clarity, but also, these are all properties, so it should even be (likely unnoticeably) faster to have fewer access attributes. The change to Figure.get_tightbbox is slightly different: checking for bbox.width/bbox.height is unnecessary because we already do the same check a few lines later.
@@ -44,7 +44,7 @@ | |||
|
|||
|
|||
def add_fancy_patch_around(ax, bb, **kwargs): | |||
fancy = FancyBboxPatch((bb.xmin, bb.ymin), bb.width, bb.height, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p0
is not guaranteed to be the minimum like xmin
/ymin
, but maybe that's okay? Otherwise, this should be bb.min
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but .width and .height can also be negative and a least if this was a rectangle, it would be correct to always use p0 (whether it's min or not) and signed width and height. I don't actually know whether the FancyBboxPatch mutators correctly handle that case, though...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, I figured as much from the Rectangle
change later in this PR. I also don't know if FancyBboxPatch
handles it, but the original was wrong.
And I just realized this is an example, so in this context, we don't have to worry about the point order being mixed up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After checking, FancyBboxPatch does get confused by negative width/height (the mutated path doesn't make much sense, but is probably just whatever you get from the naive, positive size formula, at least for the default bboxstyle). I'm not sure whether it's worth adding a check for that in the constructor...
@@ -44,7 +44,7 @@ | |||
|
|||
|
|||
def add_fancy_patch_around(ax, bb, **kwargs): | |||
fancy = FancyBboxPatch((bb.xmin, bb.ymin), bb.width, bb.height, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, I figured as much from the Rectangle
change later in this PR. I also don't know if FancyBboxPatch
handles it, but the original was wrong.
And I just realized this is an example, so in this context, we don't have to worry about the point order being mixed up.
Mostly for clarity, but also, these are all properties, so it should
even be (likely unnoticeably) faster to have fewer access attributes.
The change to Figure.get_tightbbox is slightly different: checking for
bbox.width/bbox.height is unnecessary because we already do the same
check a few lines later.
PR Summary
PR Checklist
pytest
passes).flake8
on changed files to check).flake8-docstrings
and runflake8 --docstring-convention=all
).doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).