鉴于以下情况:
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()
访问——但我无法使用他们的任何方法产生任何效果。
关于python - Seaborn FacetGrid PointPlot 添加 1 条网格线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45848281/