Моя проблема в том, как мне построить регрессию в seaborn PairGrid, которая будет зависеть от того, какая переменная отображается, а не от верхней, нижней или диагональной позиции? Например, у меня есть набор данных tips
, и я считаю, что 'size'
коррелируется как полином второго порядка независимо от другой переменной ie. вся строка / столбец в парной сетке я хочу иметь таким, но больше ничего. Однако я могу только сопоставить эту корреляцию с верхним / нижним треугольником для всех графиков , например:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
smoke = sns.PairGrid(tips, vars=['total_bill', 'tip','size'])
smoke.map_upper(sns.regplot, color = 'k', order=2)
smoke.map_diag(sns.kdeplot)
smoke.map_lower(sns.regplot, color = 'b')
Возможно ли это с морским рожком? И если я go еще дальше, что, если я хочу проверить / построить экспоненциальную корреляцию между, например. 'tip'
и 'total_bill'
только внутри пары, это возможно? Как мне это сделать?
Я знаю, что могу просто взять этот конкретный случай c снаружи и нанести его отдельно или использовать GridSpe c, но мне интересно, есть ли более простой способ , Спасибо
РЕДАКТИРОВАТЬ (26.4.): Дополнительный вопрос, как использовать hue
в этой настройке. Если я использую просто:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
vars = ['total_bill', 'tip','size']
smoke = sns.PairGrid(tips, vars=vars, hue='smoker')
smoke.map_upper(plt.scatter)
smoke.map_diag(sns.kdeplot)
smoke.map_lower(plt.scatter)
# Add 2nd order polynomial regression to the 'size' column
for ax,y in zip(smoke.axes[:2,2],vars):
sns.regplot(ax=ax, data=tips, x='size', y=y, order=2, scatter=False)
ax.set_ylabel('')
ax.set_xlabel('')
# Add logarithmic regression
sns.regplot(ax=smoke.axes[2,0], data=tips, x="total_bill", y='size', logx=True, scatter=False)
Это делает то, что я хочу, ie регрессия логарифмическая c, но очень странно. Он устанавливает синий цвет только для первого ряда, оранжевый - только для второго ряда, а затем создает зеленый цвет для первого столбца, последнего ряда, как показано на следующем рисунке. Поэтому мой вопрос, как это исправить и почему это происходит в первую очередь. Неужели hue
создает новый набор axes
, который затем необходимо повторить?