3

鉴于以下情况:

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 字典选项,但没有发现任何帮助。

提前致谢!

4

1 回答 1

3

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

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()——但我无法使用它们的任何方法来产生任何效果。

于 2017-08-23T20:34:46.353 回答