【问题标题】:Seaborn FacetGrid PointPlot Add 1 Grid LineSeaborn FacetGrid PointPlot 添加 1 条网格线
【发布时间】:2017-08-24 04:41:34
【问题描述】:

鉴于以下情况:

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

提前致谢!

【问题讨论】:

    标签: python seaborn facet-grid


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,@Elliot 我最终在我的实际代码中使用了这个(供将来参考,改编自您的解决方案): for i in ax.axes: i[0].axhline(50, alpha= 0.25, color='grey') 对于 i[0] 到 i[3]
    猜你喜欢
    • 2018-02-01
    • 2018-08-03
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    相关资源
    最近更新 更多