Seaborn FacetGrid PointPlot 添加 1 条网格线

Seaborn FacetGrid PointPlot Add 1 Grid Line

鉴于以下情况:

import seaborn as sns
attend = sns.load_dataset("attention")
sns.set_style("whitegrid", {'axes.grid' : False,'axes.edgecolor':'none'})
g = sns.FacetGrid(attend, col="subject", col_wrap=5,
size=1.5, ylim=(0, 10))
ax = g.map(sns.pointplot, "solutions", "score", scale=.7)

如您所见,我已经删除了所有网格线。我现在只想添加一条水平网格线:在每个图的 y 轴值 5 处。这可能吗?我查看了 set_style 字典选项 here,但没有找到任何帮助。

提前致谢!

在绘图中获得网格线作为视觉辅助的最简单方法是在每个绘图上画一条线。

for a in g.axes:
    a.axhline(5, alpha=0.5, color='grey')

结果是它基本上是一行代码,情节将具有您想要的功能。结果是您必须手动指定每一行的去向。 (我假设您希望生产代码中的内容稍微复杂一些)。更好一点的是

for a in g.axes:
    a.axhline(a.get_yticks()[1], alpha=0.5, color='grey')

这会抓住一个刻度并为其画一条线。

您可能可以对单个 tick 对象做一些事情来产生类似的效果---可以使用 a.yaxis.get_major_ticks() 访问它们---但我无法使用任何他们的方法没有任何效果。