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