簡體   English   中英

在Seat的Facetgrid上將regplot與分段線性回歸相結合

[英]Combining regplot with piecewise linear regression on a Facetgrid with seaborn

我想在網格上繪制我的數據以及相關的誤差線,並通過每個時間點的平均值進行分段線性回歸。 我的數據保存在pandas數據框中,並希望我們Seaborn能夠完成這項工作。

如果我使用seaborns factorplot,我會很近。

g = sns.factorplot(x="Time", y='value', hue="Name",
                col="PEAK", data=meltdf,
                size=4, aspect=1.0,col_wrap=3,sharey=False,scale=0.7)

因子圖的輸出

但是請注意,我的xaxis縮放比例不正確(這是有道理的,因為factorplot是為進行分類比較而設計的)

如果我改為創建FacetGrid並將regplot和plt.plot映射到網格上,則會在x軸上獲得正確的間距並保留誤差線等,但是線性回歸並不是我想要的方式

meltdf = pd.melt(Conc_norm.drop(['GLC','pan','Ratio %'],axis=1),
id_vars=['Name','Time'], var_name='PEAK')

g = sns.FacetGrid(meltdf, col="PEAK",hue='Name', col_wrap=4,sharey=False)
g.map(sns.regplot, "Time", "value",fit_reg=False, x_estimator=np.mean);
g.map(plt.plot, "Time", "value");

用regplot和plt.plot映射的Facetgrid的輸出

現在出現了一個問題:如何在圖中的點之間繪制分段線性回歸?

謝謝,

在拖網並閱讀了許多mwaskom的出色答案之后,看來我已經找到了可行的解決方案

def _plotmean(x, *args, **kwargs):
    ax = plt.gca()
    data = kwargs.pop('data')
    data = data.groupby(x).mean()
    data.plot(ax=ax, **kwargs)

Conc_norm.sort_values('Time', inplace=True)

meltdf = pd.melt(Conc_norm.drop(['GLC','pan','Ratio %'], axis=1),
                 id_vars=['Name','Time'], var_name='PEAK')

g = sns.FacetGrid(meltdf, col="PEAK", hue='Name', col_wrap=3,sharey=False)
g.map(sns.regplot, "Time", "value", fit_reg=False, x_estimator=np.mean)
g.map_dataframe(_plotmean, "Time")
g.add_legend()

工作輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM