feat: Add facet_row support to px.imshow #5445
Open
+161
−27
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.
Summary
This PR adds
facet_rowsupport toplotly.express.imshow, enabling visualization of 4D and 5D data by faceting along both row and column dimensions.Closes #4108
Motivation
Currently,
px.imshowonly supportsfacet_colfor creating faceted plots, limiting users to visualizing 3D data (with one facet dimension). Many scientific andengineering use cases require visualizing 4D tensor data (e.g., full factorial experimental designs in ML and biological sciences). This PR enables users to use both
facet_rowandfacet_colsimultaneously, along withanimation_frame, to visualize up to 5D datasets.Changes
plotly/express/_imshow.pyfacet_rowparameter to the function signaturefacet_rowandfacet_colfacet_rowdimension labelsfacet_col_wrapis ignored whenfacet_rowis set (consistent with other px functions)tests/test_optional/test_px/test_imshow.pytest_facet_row: Tests facet_row with numpy arraystest_facet_row_and_col: Tests using both facet_row and facet_col togethertest_animation_facet_row_and_col: Tests animation + facet_row + facet_coltest_imshow_xarray_facet_row: Tests facet_row with xarraytest_imshow_xarray_facet_row_and_col: Tests both facets with xarrayExample Usage