pairplot: check whether data supports dataframe API #3857
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.
Currently,
pairplot()
, unlike other plotting functions, requires that the data is apd.DataFrame
. This prevents the function from working with objects that are fully compatible with DataFrame, but are of a different class. By changing the check to requiring the presence of a__dataframe__
attribute, this is resolved.The patch relies on the DataFrame interoperability protocol (which is a fancy of saying that it checks the existence of a
__dataframe__()
function) as well as the soft-standard of the__array__()
function for array-like objects.For me, the main reason to submit this PR is to make seaborn fully compatible with DataMatrix 2.0. (Right now,
pairplot()
is the only plot still failing.)