Fix add hline not working for make_subplot if not populated #5254
+94
−0
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.
This is a proposal fix for issue #5136
I first reproduced the issue and created two unit tests,
test_add_hline_empty_subplots.pyandtest_hline_subplots_bug.py, that check if the bug is resolved. Then I implemented the fix (outlined below), which passed both of the new unit tests, and in the process, no old tests were broken.Root cause
add_shape()is called withexclude_empty_subplots=True. For a freshmake_subplotsfigure, every subplot is flagged empty, so the h/v line shape is filtered out and never appears, even after traces are later added.Fix overview
When
add_hline/add_vlineare invoked and the figure contains no traces (len(self.data)==0), the code now disables the exclude empty subplots logic before delegating toadd_shape, allowing the shape to be created and later displayed once data is added.Code PR
plotly.graph_objects, my modifications concern the code generator and not the generated files.