Fix IndexError when axis has only a single tick #129
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.
The
standardize_ticks()method inBrokenAxeswould raise anIndexErrorwhen an axis had only a single tick location. This occurred because the code assumed at least 2 tick locations when calculating tick spacing.Problem
The issue manifested when:
Root Cause
Lines 291, 297, 304, and 310 in
standardize_ticks()attempted to accessget_ticklocs()[1]without checking if the array had at least 2 elements:Solution
Added robust handling for single tick scenarios:
len(ticklocs) >= 2before accessing the second element(axis_range) / 5as reasonable tick spacingChanges
standardize_ticks()method inbrokenaxes.py(lines 288-319)test_single_tick_handling()intest.pyTesting
✅ All existing tests pass (19/19)
✅ New test validates single tick scenarios
✅ Edge cases tested: zero ticks, negative values, large values, log scale
✅ Visual verification confirms functionality
The fix is minimal and maintains full backward compatibility while robustly handling the edge case of single-tick axes.
Fixes #128.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.