fix(bar): fix wrong label position when bar width/height is 0 #21218
+139
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Brief Information
This pull request is in the type of:
What does this PR do?
Fix incorrect data label position when bar width/height is 0.

Fixed issues
Details
Before: What was the problem?
When a bar has zero width or height (data value is 0), the label position calculation for
label.position: 'outside'was incorrect, especially when the axis is inverted.The original logic only checked
layout.height >= 0orlayout.width >= 0without considering axis inversion, causing labels to appear in wrong positions.After: How does it behave after the fixing?
Added two helper functions
getLabelPositionForHorizontalandgetLabelPositionForVerticalto properly handle label positioning when bar dimensions are zero.The functions check the value axis's
inverseproperty to determine the correct label position, ensuring labels appear correctly regardless of axis configuration.Document Info
One of the following should be checked.
Misc
ZRender Changes
Related test cases or examples to use the new APIs
N.A.
Others
Merging options
Other information
Modified
src/chart/bar/BarView.tsto replace simple ternary operators with smarter function calls that consider axis inversion when determining label positions for zero-dimension bars.