У меня есть некоторые данные, в которых имеет смысл отображать определенные, но не все переменные, и, в частности, в тех случаях, когда имеет смысл выводить KDE для определенных переменных. Как правило, это похоже на хороший вариант использования seaborn
PairGrid
. Однако я не могу использовать sb.PairGrid.map_diag
для переменных, для которых мне нужен KDE, когда кажется, что я должен быть.
Следующий код работает так, как я себе представляю:
import seaborn as sb
import pandas as pd
iris=sb.load_dataset('iris')
pgiris = sb.PairGrid(data=iris,
x_vars=['sepal_width','petal_width','sepal_length'],
y_vars=['sepal_width','petal_width','sepal_length'])
pgiris.map_diag(sb.kdeplot)
Давайте представим, однако, что не имеет смысл наносить sepal_length
на обе оси:
pgiris=sb.PairGrid(data=iris,x_vars=['sepal_width','petal_width','sepal_length'],y_vars=['sepal_width','petal_width'])
pgiris.map_diag(sb.kdeplot)
При seaborn 0.9.0
и python3.6.7
это выдает TypeError
по причинам, которые я не понимаю - поверхностное чтение предполагает, что оно не назначает осям свой атрибут diag_axes
. Как ни странно, map_offdiag
методы, кажется, работают просто отлично, поэтому я не думаю, что это не предназначено для асимметричных парных сеток.
Как правильно сопоставить функции с асимметричными диагональными элементами PairGrid
с?