我试图PairGrid在对角线上绘制使用密度估计,在上三角部分绘制散点图,在下三角部分绘制成对线性回归模型。这是我的数据文件:
df.head()
Run Code Online (Sandbox Code Playgroud)
g = sns.PairGrid(df, hue="quality bin")
g = g.map_upper(sns.scatterplot)
g = g.map_lower(sns.lmplot)
g = g.map_diag(sns.kdeplot)
g = g.add_legend()
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:TypeError: lmplot() got an unexpected keyword argument 'label'
我需要用 来绘制每日数据sns.lmplot()。
数据具有以下结构:
df = pd.DataFrame(columns=['date', 'origin', 'group', 'value'],
data = [['2001-01-01', "Peter", "A", 1.0],
['2011-01-01', "Peter", "A", 1.1],
['2011-01-02', "Peter", "B", 1.2],
['2012-01-03', "Peter", "A", 1.3],
['2012-01-01', "Peter", "B", 1.4],
['2013-01-02', "Peter", "A", 1.5],
['2013-01-03', "Peter", "B", 1.6],
['2021-01-01', "Peter", "A", 1.7]])
Run Code Online (Sandbox Code Playgroud)
我现在想用每月平均值绘制数据sns.lmplot()(我的原始数据比玩具数据更细粒度)并使用hueforgroup列。为此,我按月汇总:
df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y%M').astype(int)
df = df.groupby(['date', 'origin', 'group']).agg(['mean'])
df.columns = ["_".join(pair) for pair in df.columns] # reset col multi-index
df = df.reset_index() # reset index
Run Code Online (Sandbox Code Playgroud)
然后我绘制数据:
sns.lmplot(data=df, x="date", …Run Code Online (Sandbox Code Playgroud)