Я пытаюсь использовать аргумент x_partial
в Seaborn's lmplot
, чтобы регрессировать ковариату, но он выдает AttributeError
. Вот воспроизводимый пример того, как я пытаюсь использовать аргумент:
import seaborn as sns
iris = sns.load_dataset("iris")
sns.lmplot('sepal_length', 'sepal_width', iris, x_partial='petal_length')
, что приводит к (частичному отслеживанию):
~ / miniconda3 / envs / pymc37 / lib / python3.7 / site-packages / seaborn / regression.py в init (self, x, y, data, x_estimator, x_bins, x_ci, scatter , fit_reg, ci, n_boot, единицы, порядок, логистика, lowess, надежный, logx, x_partial, y_partial, усеченный, dropna, x_jitter, y_jitter, цвет, метка)
111 # Regress nuisance variables out of the data
112 if self.x_partial is not None:
--> 113 self.x = self.regress_out(self.x, self.x_partial)
114 if self.y_partial is not None:
115 self.y = self.regress_out(self.y, self.y_partial)
~ / miniconda3 / envs / pymc37 / lib / python3.7 / site-packages / seaborn / regression.py в regress_out (self, a, b)
313 b = np.c_[b]
314 a_prime = a - b.dot(np.linalg.pinv(b).dot(a))
--> 315 return (a_prime + a_mean).reshape(a.shape)`
316
317 def plot(self, ax, scatter_kws, line_kws):
~ / miniconda3 / envs / pymc37 / lib / python3.7 / site-packages / pandas / core / generic.py в getattr (self, name)
5065 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5066 return self[name]
-> 5067 return object.__getattribute__(self, name)
5068
5069 def __setattr__(self, name, value):
AttributeError: у объекта 'Series' нет атрибута 'reshape'
Это использование, похоже, следует документации, которая гласит, что строки имен столбцов могут быть переданы как аргумент x_partial
. Очевидно, что это обычная ошибка Pandas, но, поскольку она появляется в коде Seaborn, я предполагаю, что я не правильно использую аргумент.
Как правильно использовать этот аргумент?
Информация о версии
requirements.txt
matplotlib=3.1.0
numpy=1.16.4
pandas=0.24.2
python=3.7.3
scipy=1.2.1
seaborn=0.9.0
Обратите внимание, что это совместимо с conda create -n myenv --file requirements.txt
, если вы хотите соответствовать моему env.