在构面图上绘制参考线

问题描述

我需要按类型将散点图数据散布起来,并与每个构面的参考线进行比较。我正在努力让线方程y = 8x + 10绘制在每个构面图上。

    import pandas as pd
    import seaborn as sns

    sns.lmplot(x="18O‰ VSMOW",y="D‰ VSMOW",hue="Type",col="Type",col_wrap=2,data=df)

我的目标是使每种类型与已知的一般关系轻松进行比较。在下面,我在前两个情节中绘制了我想要的内容。 谢谢
Current Plot

解决方法

如果将 lmplot 保存为 grid,则可以访问 grid.axes.flat 中的底层 FacetGrid 面,然后从 grid.data 构建参考线。

import seaborn as sns
df = sns.load_dataset('tips')

# save grid object
grid = sns.lmplot(x='total_bill',y='tip',col='day',hue='day',col_wrap=2,data=df)

# plot reference line per facet (y = 0.18*x - 0.3)
for ax in grid.axes.flat:
    x = grid.data.total_bill
    y = 0.18*x - 0.3
    ax.plot(x,y,linestyle=':',color='gray')

reference lines on facet grid