在小平面图上绘制参考线

Plotting a reference line over facet plots

我需要用自己的线按类型散布绘图数据,并与每个方面的参考线进行比较。我正在努力让线方程 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)

我的目标是能够轻松地将每种类型与已知的一般关系进行比较。下面,我在最上面的两个图上画了我想要的东西:

  • 自 matplotlib 3.3 起,use axline() to easily plot reference lines
  • 图形级函数,例如 lmplot return FacetGrid,因此存储网格以访问面。

要么使用 FacetGrid.map_dataframe()axline 应用于每个方面:

# store underlying facet grid
g = sns.lmplot(x='total_bill', y='tip', col='day', hue='day', col_wrap=2, data=df)

# apply axline to each facet (y = 0.18*x - 0.3)
g.map_dataframe(lambda data, **kws: plt.axline((0, -0.3), slope=0.18))

或通过 g.axes.flat:

手动迭代构面
for ax in g.axes.flat:
    ax.axline((0, -0.3), slope=0.18) # y = 0.18*x - 0.3