【问题标题】:Plot lower triangle in a seaborn Pairgrid在 seaborn Pairgrid 中绘制下三角形
【发布时间】:2015-12-04 11:16:37
【问题描述】:

我对 seaborn Pairgrid 有点挣扎。

假设我有一个像这样的 Pairgrid:

如您所见,上三角图反映了下三角图。 我希望能够仅绘制较低的三角形图,但到目前为止我发现没有简单的方法来做到这一点。你能帮帮我吗?

【问题讨论】:

    标签: python seaborn


    【解决方案1】:

    使用 seaborn >= 0.9.1:

    import seaborn as sns
    iris = sns.load_dataset("iris")
    sns.pairplot(iris, corner=True)
    

    【讨论】:

    • 您也可以使用for ax in g.diag_axes: ax.set_visible(False)删除对角线上的直方图
    • 另外,通过简单的索引交换,g.axes[i, j].set_visible(False) 绘制上三角形
    【解决方案2】:

    这与接受的答案基本相同,但使用来自seaborn.PairGrid的官方方法:

    import seaborn as sns
    import matplotlib.pyplot as plt
    sns.set(style="ticks")
    iris = sns.load_dataset("iris")
    
    def hide_current_axis(*args, **kwds):
        plt.gca().set_visible(False)
    
    g = sns.pairplot(iris)
    g.map_upper(hide_current_axis)
    

    隐藏下半部分也很容易:

    g.map_lower(hide_current_axis)
    

    或隐藏对角线:

    g.map_diag(hide_current_axis)
    

    或者,直接使用PairGrid 进行更多控制:

    g = sns.PairGrid(iris, hue='species', diag_sharey=False)
    g.map_lower(sns.scatterplot, alpha=0.3, edgecolor='none')
    g.map_diag(sns.histplot, multiple="stack", element="step")
    g.map_upper(hide_current_axis)
    

    给出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2014-12-10
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      相关资源
      最近更新 更多