当前位置:  开发笔记 > 编程语言 > 正文

在seaborn Pairgrid中绘制下三角形

如何解决《在seabornPairgrid中绘制下三角形》经验,为你挑选了2个好方法。

我对seaborn Pairgrid有点挣扎.

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

在此输入图像描述

如您所见,上三角形图反映了下三角形.我希望能够只绘制下三角形图,但到目前为止我找不到简单的方法.你能帮助我吗?



1> mwaskom..:

可能应该是一种更简单的方法,但这是有效的

import numpy as np
import seaborn as sns
iris = sns.load_dataset("iris")
g = sns.pairplot(iris)
for i, j in zip(*np.triu_indices_from(g.axes, 1)):
    g.axes[i, j].set_visible(False)

在此输入图像描述


您也可以使用`for ax in g.diag_axes:ax.set_visible(False)删除对角线上的直方图.

2> Sam Mason..:

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

import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
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直接使用即可进行更多控制:

from itertools import groupby

def stackedhist(data, stackby, **kwds):
    groups = groupby(zip(stackby, data), lambda x: x[0])
    grouped_data = [[v for _, v in items] for key, items in groups]
    plt.hist(grouped_data, stacked=True, edgecolor='none')

g = sns.PairGrid(iris, diag_sharey=False)
g.map_lower(sns.scatterplot, data=iris, hue='species', alpha=0.3, edgecolor='none')
g.map_diag(stackedhist, stackby=iris['species'])
g.map_upper(hide_current_axis)

这使:

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有